在Rails中的模型中创建模型

是否可以从另一个模型表单中创建模型对象?

假设我有一个Article模型和一个Term模型, has_and_belongs_to_many通过连接表具有has_and_belongs_to_many关系。 (术语几乎与标签类似,但有一个定义列。)

我希望用户能够在编辑时为文章添加术语(可能使用复选框),但如果用户无法在列表中找到它,我也可以创建新术语。 如何才能做到这一点? 我希望用户能够在文章编辑表单中创建带有定义的术语。 这可能吗?

读入“嵌套对象”或“嵌套属性”。 这可能是一个很好的起点: http : //ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes

您可以随时分隔params散列内的字段(具有不同键的散列,可能是:term => {}和:article => {}),它们会传回控制器,然后在您进入控制器后单独处理它。

关于railscasts的Ryan展示了如何在这两个截屏video中做类似的事情。 他在调查网站上添加了问题和答案。

嵌套模型表1

嵌套模型表2

除此之外, 嵌套属性上的这个资源将帮助您将它们拼凑在一起。