I new to rails. I have a setup in the lib directory like so:
lib/
blog/
core/
search/
base.rb
The base.rb defines the Base class as well:
module Blog
module Core
module Search
class Base
attr_accessor :properties
def initialize(params)
@properties = {}
end
end
end
end
end
I have the following code in my application.rb
config.autoload_paths += Dir["#{config.root}/lib/**/"]
When I include it in posts controller I get following errors:
LoadError in PostsController#index
Expected /home/usr/code/blog/lib/blog/core/search/base.rb to define Base
Any idea? I’m using rails 3.2.5 with RVM. Thank you for every advice.
UPDATED: Added my full stack:
Started GET "/admin/posts" for 127.0.0.1 at 2012-06-08 21:06:18 +0800
LoadError (Expected /home/usr/code/blog/lib/blog/core/search/base.rb to define Base):
app/controllers/admin/base_controller.rb:5:in `<top (required)>'
app/controllers/admin/posts_controller.rb:6:in `<top (required)>'
Rendered /home/usr/.rvm/gems/ruby-1.9.3-p194@rails-3.2.5/gems/actionpack-3.2.5/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.9ms)
Rendered /home/usr/.rvm/gems/ruby-1.9.3-p194@rails-3.2.5/gems/actionpack-3.2.5/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.6ms)
Rendered /home/usr/.rvm/gems/ruby-1.9.3-p194@rails-3.2.5/gems/actionpack-3.2.5/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (7.0ms)
I had the same problem. It comes from the fact that you try to load /lib/blog/core/search/base.rb directly in application.rb with
/lib/**/Error I had:
Directory structure:
base.rb:
application.rb:
Here are the changes I made to make it work
Directory structure:
durative.rb:
base.rb (no change)
application.rb (changed):
Tell us if it worked for you too.