每次创建或保存时,都会使用标签更新Post模型的属性?

时间:2012-03-02 03:54:26

标签: ruby-on-rails

我有发布模型:

class Post < ActiveRecord::Base
  attr_accessible :title, :content, :tag_list 

  has_and_belongs_to_many :tags
end

标记模型:

class Tag < ActiveRecord::Base
  attr_accessible :name

  has_and_belongs_to_many :posts
  end
end

正如您所看到的,他们之间有has_and belongs_to_many个关联,我还创建了一个联合表:

create_table :posts_tags, :id => false do | t |
  t.integer :post_id, :tag_id
end

我想做以下事情:

每次创建或保存帖子的标签时,标签所属帖子的tag_list属性都应使用标签进行更新。

有任何建议可以实现这一目标吗?

1 个答案:

答案 0 :(得分:1)

我建议在Tag模型中添加after_save回调。

after_save :update_tag_list_on_posts

private
  def update_tag_list_on_posts
    posts.update_all(:tag_list => desired_tag_list_value)   
  end