我对 Rails 还比较陌生,所以如果这是一个相当幼稚的问题,请原谅我。 :]
我有两个可以标记的模型:Collection
和 Video
。我通过具有多态关联的 Tag
模型以及与 Tagging
的 has_many :through
关联来支持这一点。这一切都很完美。
我很难弄清楚如何设置 View 来适应这一点。我知道,如果我只是创建或更新与单个模型唯一关联的标签,那么我可以使用一个简单的表单并将 accepts_nested_attributes_for
添加到我的模型中,但我遇到的问题是我想要首先检查标签是否存在,只有在不存在时才创建它,否则只需将现有标签与新视频或集合相关联。显然我可以在 Controller 中手动执行此操作,但由于 Rails 提供了自动创建和更新关联对象的机制,我想知道它是否提供了类似的内容来关联现有对象?
此外,我不确定是否应该嵌套 tags
资源并在 TagsController
中集中处理此问题,或者是否应该从所属对象的对象中管理标签 Controller ,例如 VideosController
。
任何帮助或建议将不胜感激。
最佳答案
你需要手动完成,代码不多。
基本上,您需要在 Controller ( doc ) 中使用 find_or_create_by
,并在 Collection 和 Video View 中使用 fields_for
( doc )。
关于javascript - rails 5 : Nested forms and existing associated objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37595050/