# DrbServer incompatible with config.gem

**URL:** <https://www.ruby-forum.com/t/drbserver-incompatible-with-config-gem/154500>\
**Category:** Ferret\
**Created:** [November 30, 2008, 8:34pm UTC](https://www.ruby-forum.com/t/drbserver-incompatible-with-config-gem/154500 "2008-11-30T20:34:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![daveamos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a698b9/32.png) [@daveamos](https://www.ruby-forum.com/u/daveamos)\
**Post date:** [November 30, 2008, 8:34pm UTC](https://www.ruby-forum.com/t/drbserver-incompatible-with-config-gem/154500/1 "2008-11-30T20:34:42Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![daveamos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a698b9/32.png) [@daveamos](https://www.ruby-forum.com/u/daveamos)\
**Post date:** [December 2, 2008, 11:18pm UTC](https://www.ruby-forum.com/t/drbserver-incompatible-with-config-gem/154500/2 "2008-12-02T23:18:45Z")

</div>

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 A. 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?

---

<div class="post-metadata">

**Author:** ![daveamos](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a698b9/32.png) [@daveamos](https://www.ruby-forum.com/u/daveamos)\
**Post date:** [December 3, 2008, 12:19am UTC](https://www.ruby-forum.com/t/drbserver-incompatible-with-config-gem/154500/3 "2008-12-03T00:19:45Z")

</div>

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?
