I recently upgraded to Rails 2.2.2 and refactored some of my rails code to use the config.gem functionality. In doing so, I noticed some odd behavior when trying to start the DrbServer. Essentially, the DrbServer will not start unless I have the "require 'acts_as_ferret" statement below in environment.rb. I thought the gem.config would have been enough, but apparently not. -- start environment.rb -- Rails::Initializer.run do |config| [...] # Requires acts_as_ferret must be here, can't figure out why require 'acts_as_ferret' config.gem 'acts_as_ferret', :version => '0.4.3' config.gem 'ferret', :version => '0.11.6' [...] end -- end environment.rb -- Here's the error message I receive when the require is left out. -- error -- me@machina $ script/ferret_server -e production start undefined method `acts_as_ferret' for #<Class:0x22f9bec> -- end snip -- Any ideas if this is normal?
on 2008-11-30 20:34
on 2008-12-02 23:18
I don't use the AAF gem, but do have a require statement in a initializer in config/intializers that pulls in acts_as_ferret. Any chance you can supply a more detailed back trace that sheds some light on what class is causing trouble? Do you also have trouble booting script/console? -c- Dave Anderson wrote: > I recently upgraded to Rails 2.2.2 and refactored some of my rails code > to use the config.gem functionality. In doing so, I noticed some odd > behavior when trying to start the DrbServer. Essentially, the DrbServer > will not start unless I have the "require 'acts_as_ferret" statement > below in environment.rb. I thought the gem.config would have been > enough, but apparently not. > > -- start environment.rb -- > > Rails::Initializer.run do |config| > > [...] > > # Requires acts_as_ferret must be here, can't figure out why > require 'acts_as_ferret' > > config.gem 'acts_as_ferret', :version => '0.4.3' > config.gem 'ferret', :version => '0.11.6' > > [...] > > end > > -- end environment.rb -- > > Here's the error message I receive when the require is left out. > > -- error -- > > me@machina $ script/ferret_server -e production start > undefined method `acts_as_ferret' for #<Class:0x22f9bec> > > -- end snip -- > > Any ideas if this is normal?
on 2008-12-03 00:19
Chris G. wrote: > I don't use the AAF gem, but do have a require statement in a > initializer in config/intializers that pulls in acts_as_ferret. For the DrbServer to start successfully, I must include a require 'acts_as_ferret' ...statement in my environment.rb file. However, script/console and script/server startup just fine without the require statement. > Any > chance you can supply a more detailed back trace that sheds some light > on what class is causing trouble? Do you also have trouble booting > script/console? Here goes... -- debug message -- dgm@deimos $ script/ferret_server -e test start --debug undefined method `acts_as_ferret' for #<Class:0x22f9958> /Library/Ruby/Gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1833:in `method_missing' /Users/dgm/Sites/www.epartment54.com/app/models/article.rb:35 /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' /Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:155:in `require' /Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:262:in `require_or_load' /Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:221:in `depend_on' /Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:133:in `require_dependency' /Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:368:in `load_application_classes' /Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:367:in `each' /Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:367:in `load_application_classes' /Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:365:in `each' /Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:365:in `load_application_classes' /Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:185:in `process' /Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send' /Library/Ruby/Gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run' ./script/../config/environment.rb:13 /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' /Library/Ruby/Gems/1.8/gems/acts_as_ferret-0.4.3/lib/server_manager.rb:39 /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' script/ferret_server:9 -- end debug -- -- script/ferret_server -- #!/usr/bin/env ruby begin require File.join(File.dirname(__FILE__), '../vendor/plugins/acts_as_ferret/lib/server_manager') rescue LoadError # try the gem require 'rubygems' gem 'acts_as_ferret' require 'server_manager' # <-- This is line 9 end -- end script/ferret_server -- Notable points of interest: - article.rb is a model and has a "acts_as_ferret" hook at line 35 - Line 35 of environment.rb is the "Rails::Initializer.run do |config|" start block. Within it I have a config.gem 'acts_as_ferret' statement. My hunch is that config.gem is not loading things in a way that is compatible with DrbServer. Ideas?
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.