我有发布模型:
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
属性都应使用标签进行更新。
有任何建议可以实现这一目标吗?
答案 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