# Troubles with using gems in Rails

**URL:** <https://www.ruby-forum.com/t/troubles-with-using-gems-in-rails/92690>\
**Category:** Rails\
**Created:** [April 23, 2007, 2:31am UTC](https://www.ruby-forum.com/t/troubles-with-using-gems-in-rails/92690 "2007-04-23T02:31:48Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![viciu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/7ba0ec/32.png) [@viciu](https://www.ruby-forum.com/u/viciu)\
**Post date:** [April 23, 2007, 2:31am UTC](https://www.ruby-forum.com/t/troubles-with-using-gems-in-rails/92690/1 "2007-04-23T02:31:48Z")

</div>

Hi!

I’m observing some problems using gem inside Rails. My understanding is  
that after following sequence in irb:

$ irb  
irb(main):001:0\> require ‘rubygems’  
=\> true  
irb(main):002:0\> require ‘active\_record’  
=\> true  
irb(main):003:0\> gem ‘acts\_as\_taggable’  
=\> true

I should have access to acts\_as\_tagable mixins, like:

irb(main):005:0\> ActiveRecord::Acts::Taggable  
NameError: uninitialized constant ActiveRecord::Acts::Taggable  
from  
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active\_support/dependencies.rb:263:in  
`load_missing_constant' from /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:452:in `const\_missing’  
from (irb):5

Well it looks like I don’t have access. I have to include file from gem  
manually:

irb(main):013:0\> require  
‘/usr/local/lib/ruby/gems/1.8/gems/acts\_as\_taggable-2.0.2/lib/taggable.rb’  
=\> []  
irb(main):014:0\> ActiveRecord::Acts::Taggable  
=\> ActiveRecord::Acts::Taggable

What I’m doing wrong? My environment:

$ ruby --version  
ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-freebsd6]  
$ gem list rubygems-update  
rubygems-update (0.9.2)

Best regards,

–  
Witold R.  
[nhw.pl](http://nhw.pl/wp/) (EN blog)  
[NetManiac](http://nhw.pl/pl/) (PL blog)

---

<div class="post-metadata">

**Author:** ![viciu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/7ba0ec/32.png) [@viciu](https://www.ruby-forum.com/u/viciu)\
**Post date:** [April 23, 2007, 3:31am UTC](https://www.ruby-forum.com/t/troubles-with-using-gems-in-rails/92690/2 "2007-04-23T03:31:13Z")

</div>

Witold,

That is an enhancement of the latest rubygems. The ‘gem’ method does  
not trigger auto-require as ‘require\_gem’ used to. The  
‘acts\_as\_taggable’ gem has autorequire set to ‘taggable’, which  
activates all that stuff you expect. But since it is not called when  
you use ‘gem’, you need to require ‘taggable’ explicitly after that.  
Notice, that there is no need to specify the full path in require.

Hope it helps,  
Val

$ irb -rrubygems

> > gem ‘acts\_as\_taggable’  
> > =\> true  
> > require ‘taggable’  
> > =\> true  
> > ActiveRecord::Acts::Taggable  
> > =\> ActiveRecord::Acts::Taggable

On Apr 22, 8:31 pm, Witold R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![viciu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/7ba0ec/32.png) [@viciu](https://www.ruby-forum.com/u/viciu)\
**Post date:** [April 23, 2007, 1:58pm UTC](https://www.ruby-forum.com/t/troubles-with-using-gems-in-rails/92690/3 "2007-04-23T13:58:05Z")

</div>

Val wrote:

> That is an enhancement of the latest rubygems. The ‘gem’ method does  
> not trigger auto-require as ‘require\_gem’ used to. The  
> ‘acts\_as\_taggable’ gem has autorequire set to ‘taggable’, which  
> activates all that stuff you expect. But since it is not called when  
> you use ‘gem’, you need to require ‘taggable’ explicitly after that.

Thank You for clarifications.

Is there some way to enable old behavior? Well, I see this as something  
lowering code readability. Thanks to disabled auto require feature I  
need to execute two commands, and require often would need different  
name for include (like in this example: acts\_as\_taggable and taggable)

–  
Witold R.  
[nhw.pl](http://nhw.pl/wp/) (EN blog)  
[NetManiac](http://nhw.pl/pl/) (PL blog)

---

<div class="post-metadata">

**Author:** ![viciu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/7ba0ec/32.png) [@viciu](https://www.ruby-forum.com/u/viciu)\
**Post date:** [April 23, 2007, 8:46pm UTC](https://www.ruby-forum.com/t/troubles-with-using-gems-in-rails/92690/4 "2007-04-23T20:46:41Z")

</div>

Witold R. wrote:

> lowering code readability. Thanks to disabled auto require feature I  
> need to execute two commands, and require often would need different  
> name for include (like in this example: acts\_as\_taggable and taggable)

gem “somegem” is - if I understand correctly - only needed if you need a  
special version

require “somegem” will require the latest “somegem”

irb(main):001:0\> require “rubygems”  
=\> true  
irb(main):002:0\> require “trollop”  
=\> true  
irb(main):003:0\> Trollop::VERSION  
=\> “1.6”

* * *

irb(main):001:0\> require “rubygems”  
=\> true  
irb(main):002:0\> gem “trollop”, “1.4”  
=\> true  
irb(main):003:0\> require “trollop”  
=\> true  
irb(main):004:0\> Trollop::VERSION  
=\> “1.4”
