【发布时间】:2011-06-18 00:28:40
【问题描述】:
这里是关联以及相关的依赖和验证
后模型: 发布 has_many :post_tags 发布 has_many :tags, :through => :post_tags
标签模型: 验证 :content, :uniqueness => true
问题是这样的: 当我想为帖子分配标签时(即 post.tags
期望的行为是这样的:将新标签分配给帖子时 - 如果标签已经存在,则不要尝试创建新标签,而只创建 post_tag 关系。这将避免唯一性验证失败,但仍将标签分配给帖子
- 如果标签不存在,则创建一个新标签和一个 post_tag 关系。
什么是干净的方法来做到这一点? 谢谢,
-附言我正在考虑的两种方法是手动创建关联,即不使用嵌套属性功能。或者在 UserPost 模型中覆盖 AvtiveRecords 的 'autosave_associated_records_for_tags' 方法,该方法处理关联模型(在本例中为标签)的自动保存,并在尝试保存之前对其进行修改以检查标签是否存在
【问题讨论】:
标签: ruby-on-rails