Expected … to define Base

167 views
Skip to first unread message

Zeck

unread,
Jun 8, 2012, 8:54:19 AM6/8/12
to rubyonra...@googlegroups.com

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

unread,
Jun 8, 2012, 9:14:13 AM6/8/12
to rubyonra...@googlegroups.com

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....@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....@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....@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.

Oscar Del Ben

unread,
Jun 8, 2012, 12:26:29 PM6/8/12
to rubyonra...@googlegroups.com
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.

-- 
Oscar Del Ben
Sent with Sparrow

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/h3nj9T98yYMJ.
To post to this group, send email to rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

Zeck

unread,
Jun 8, 2012, 7:52:21 PM6/8/12
to rubyonra...@googlegroups.com
Is it bug?


On Saturday, June 9, 2012 12:26:29 AM UTC+8, Oscar Del Ben wrote:
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.

-- 
Oscar Del Ben
Sent with Sparrow

On Friday, June 8, 2012 at 6:14 AM, Zeck wrote:

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-p...@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-p...@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-p...@rails-3.2.5/gems/actionpack-3.2.5/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (7.0ms)
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.

Matt Jones

unread,
Jun 9, 2012, 8:42:51 PM6/9/12
to rubyonra...@googlegroups.com


On Friday, 8 June 2012 08:54:19 UTC-4, Zeck wrote:

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/**/"]



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 
Reply all
Reply to author
Forward
0 new messages