Acts as taggable installed

This commit is contained in:
Joe Sak 2011-03-11 12:58:58 -06:00
parent bd2802161a
commit ac7a6f6636
4 changed files with 38 additions and 0 deletions

View file

@ -1,3 +1,5 @@
require 'acts-as-taggable-on'
class BlogPost < ActiveRecord::Base class BlogPost < ActiveRecord::Base
default_scope :order => 'published_at DESC' default_scope :order => 'published_at DESC'
@ -6,6 +8,7 @@ class BlogPost < ActiveRecord::Base
belongs_to :author, :class_name => 'User', :foreign_key => :user_id belongs_to :author, :class_name => 'User', :foreign_key => :user_id
has_many :comments, :class_name => 'BlogComment', :dependent => :destroy has_many :comments, :class_name => 'BlogComment', :dependent => :destroy
acts_as_taggable
has_many :categorizations has_many :categorizations
has_many :categories, :through => :categorizations, :source => :blog_category has_many :categories, :through => :categorizations, :source => :blog_category

View file

@ -0,0 +1,28 @@
class ActsAsTaggableOnMigration < ActiveRecord::Migration
def self.up
create_table :tags do |t|
t.string :name
end
create_table :taggings do |t|
t.references :tag
# You should make sure that the column created is
# long enough to store the required class names.
t.references :taggable, :polymorphic => true
t.references :tagger, :polymorphic => true
t.string :context
t.datetime :created_at
end
add_index :taggings, :tag_id
add_index :taggings, [:taggable_id, :taggable_type, :context]
end
def self.down
drop_table :taggings
drop_table :tags
end
end

View file

@ -11,6 +11,7 @@ Gem::Specification.new do |s|
s.add_dependency 'refinerycms', '>= 0.9.8' s.add_dependency 'refinerycms', '>= 0.9.8'
s.add_dependency 'filters_spam', '~> 0.2' s.add_dependency 'filters_spam', '~> 0.2'
s.add_dependency 'acts-as-taggable-on', '~> 2.0.6'
s.files = %w( s.files = %w(
app app

View file

@ -47,6 +47,12 @@ describe BlogPost do
end end
end end
describe "tags" do
it "acts as taggable" do
Factory(:post).should respond_to(:tag_list)
end
end
describe "authors" do describe "authors" do
it "are authored" do it "are authored" do
BlogPost.instance_methods.map(&:to_sym).include? :author BlogPost.instance_methods.map(&:to_sym).include? :author