Using Tagging in your Ruby on Rails Application

Contributor Icon Contributed by johnnythawte  
Tag Icon Tagged: Ruby on Rails  

Tagging is all the rage in the web 2.0 universe. For you aspiring Ruby on Rails developers, you are in luck, because there is a great plugin that makes adding tagging into your application a breeze. This recipe describes using the acts_as_taggable plugin on Rails 1.1


To install the plugin into your application, you will first run these commands from your project directory in your console:

script/plugin install acts_as_taggable
script/generate migration add_tag_support

The first command installs the plugin from the RubyGems repository. The second command generates a Rails Migration file under the db/migrate directory. You will want to open up that file and add in this code:

class AddTagSupport < ActiveRecord::Migration
def self.up
#Table for your Tags
create_table :tags do |t|
t.column :name, :string
end

create_table :taggings do |t|
t.column :tag_id, :integer
#id of tagged object
t.column :taggable_id, :integer
#type of object tagged
t.column :taggable_type, :string
end
end

def self.down
drop_table :tags
drop_table :taggings
end
end

Running the next command will execute the file we just edited and create the database support for tags.
rake db:migrate

Now you need to add the following line to the top of your model class:

acts_as_taggable

And that's it. You now have tagging support on your object!

Here are some sample usage for you to try:
# tags a post with both the tags "Agile" and "Rails"
post.tag_with("agile rails")

# returns a string containing "agile rails", space delimited.
post.tag_list

# find all posts tagged with Rails
post.find_tagged_with("Rails")

Be sure to check back in this category for more Ruby on Rails recipes, or there's always the Ruby on Rails Quick Reference over at Johnny's Thoughts.

 

1 Comment -


  1. Ruby on Rails Technology said on August 5, 2011

    Thanks for introducing this plugin and providing all the steps to be taken.

 

RSS feed for comments on this post. TrackBack URL

Leave a comment -