Zeck
(Zeck)
June 8, 2012, 12:54pm
1
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.
Zeck
(Zeck)
June 8, 2012, 1:14pm
2
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)
Please help me.
This is kind of interesting. I want to spend some time tomorrow to debug this kind of issues (that happens very frequently), unless someone gets to it first.
Try just adding lib/ to autoload_paths - the ** part is tripping it up, so it’s deciding that your file should define ‘Base’, not Blog::Core::Search::Base.
BTW, if you’re new to Rails you may want to try learning it more idiomatically before dumping a jumbo-sized bucket of OO overdesign on it with all these modules…
–Matt Jones