2011-06-18 35 views
0

这里是协会和相关的依赖关系,并验证失败更新嵌套的属性,因为唯一性验证失败

桩模型: 后的has_many:post_tags 后的has_many:标签:通过=>:post_tags

标签型号: 验证:内容:独特性=>真

的问题是这样的: 当我想一个变量分配给后(即post.tags < < new_tag)时,如果数据库中已经存在具有相同内容的标记,则操作失败,因为唯一性验证失败。

期望的行为是:当为一个帖子分配一个新标签 - 如果标签已经存在,那么不要尝试创建一个新标签,而只是创建post_tag关系。这将避免唯一性验证失败,但仍将标签分配给帖子

  • 如果标签不存在,则创建一个新标签并且还创建一个post_tag关系。

什么是干净的方式来做到这一点? 谢谢,

-p.s.我正在琢磨的两种方法是手工完成关联创作,即不使用嵌套属性功能。或者在UserPost模型中覆盖AvtiveRecords的'autosave_associated_records_for_tags'方法,该方法处理相关模型的自动保存(在这种情况下是标记),并修改它以在尝试保存标记之前检查存在标记

回答