Acts as taggable installed
This commit is contained in:
parent
bd2802161a
commit
ac7a6f6636
4 changed files with 38 additions and 0 deletions
|
@ -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
|
||||||
|
|
28
db/migrate/3_acts_as_taggable_on_migration.rb
Normal file
28
db/migrate/3_acts_as_taggable_on_migration.rb
Normal 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
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue