I am looking at using ActiveResource but is now facing a problem that I am unable to figure out myself (was searching the net for a couple of days for the solution by now).
So I have an authentication app sitting at http://localhost:80
and a client on port :85
I have a User model with its controller which follows REST architecture and is set to respond to xml calls.
Here is what I have in my auth app:
models/User.rb
class User < ActiveRecord::Base
end
*controllers/users_controller.rb*
class UsersController < ApplicationController
respond_to :html, :xml, :js
def index
@users = User.find :all
respond_with @users
end
def show
@user = User.find(params[:id])
respond_with @user
end
.
.
.
end
I have a class extending from active resource as follows:
models/user.rb
class User < ActiveResource::Base
self.site = "http://localhost:80"
end
Here is how I am trying to use it: *controllers/sessions_controller.rb*
class SessionController < ApplicationController
def home
@user = User.find(:all)
end
end
what could go wrong, right?..
But then I am getting the following error:
Started GET "/" for 127.0.0.1 at 2013-09-02 08:33:44 +1200 Processing
by SessionsController#home as HTML Completed 500 Internal Server Error
in 3msNameError (uninitialized constant ActiveResource):
app/models/user.rb:1:in<top (required)>'
home'
app/controllers/sessions_controller.rb:4:inRendered
/usr/lib/ruby/gems/1.9.1/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_source.erb
(1.6ms) Rendered /usr/lib/ruby/gems/1.9.1/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb
(2.7ms) Rendered /usr/lib/ruby/gems/1.9.1/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb
(2.2ms) Rendered /usr/lib/ruby/gems/1.9.1/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (37.4ms)
I am using:
ruby 1.9.3p0 (2011-10-30 revision 33570) [i686-linux]
Rails 4.0.0
activeresource (4.0.0) gem is installed
What could I possibly be doing wrong?
Is it possible that ActiveResource failing to connect to localhost:80
and as a result does not get initialized?
EDIT:
done rvm use 2.0.0 so now ruby version is: ruby 2.0.0p247 (2013-06-27 revision 41674) [i686-linux]
EDIT:
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.7
- RUBY VERSION: 1.9.3 (2011-10-30 patchlevel 0) [i686-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: /usr/bin/ruby1.9.1
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/lib/ruby/gems/1.9.1
- /home/dmitry/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
I have finally figured this out...
For some reason (I would be grateful if someone can post an explanation why) I had to require active resource manually in my user.rb file.
The correct code to make it work should be:
require 'active_resource'
class User < ActiveResource::Base
self.site = "http://localhost:80"
end
P.S
Thank you zeantsoi for your comments, those have led me into a search for reasons of this gem not being loaded.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With