如何在rails表单中一次添加多个关联?

时间:2016-08-26 20:17:45

标签: ruby-on-rails

我有这两个简单的模型:

class Menu < ActiveRecord::Base
  has_many :ingredients, dependent: :destroy
end

class Ingredient < ActiveRecord::Base
  belongs_to :menu
end

我可以创建一个菜单并为同一菜单创建成分但是对于有很多成分的情况,例如20?这很乏味。

如何选择我想要为菜单创建的多种成分并获取表单以生成该数量的字段并等待输入?

2 个答案:

答案 0 :(得分:0)

带有rails并且没有gem的

:您可以在菜单模型中设置嵌套属性,并在菜单表单中使用fields_for来添加输入并创建它的ingridients。

阅读表格中的嵌套属性 http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html

api参考您正在寻找的方法: http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for

这样,每次创建菜单(表单)时,都可以为ingridients添加属性。

答案 1 :(得分:0)

如果您正在寻找动态嵌套表单,您应该尝试使用cocoon gem,这会让您的生活变得轻松。

有关详细信息,请查看https://github.com/nathanvda/cocoon