文档描述了传递嵌套数组,但实际上从未给出一个表单字段本身如何的示例
params = { :member => {
:name => 'joe', :posts_attributes => [
{ :title => 'Kari, the awesome Ruby documentation browser!' },
{ :title => 'The egalitarian assumption of the modern citizen' },
{ :title => '', :_destroy => '1' } # this will be ignored
]
}}
这是我能想到实际工作的唯一方法。这是正确的,我是否留给自己的设备想出一种方法来对数组元素进行编号(使用增量器),或者是否有特定于RoR的方法来执行此操作?
name='member[posts_attributes][0][title]' value='Kari, the awesome Ruby documentation browser!'
name='member[posts_attributes][1][title]' value='The egalitarian assumption of the modern citizen'
这样的东西?
- f.fields_for "posts_attributes[#{i}]", x do |pa|
或者我离开了?
答案 0 :(得分:0)
如果您的模型已正确嵌套,Rails应该会处理所有事情。
根据您的示例,请确保:
Member has_many :post_attributes
Member accepts_nested_fields_for :post_attributes
然后,在您的创建操作中,您必须构建要显示的post_attribute对象的数量:
def create
@member = Member.new
@member.post_attributes.build
end
您的表单应该只需要:
f.fields_for :post_attributes do |post_attributes_form|
post_attributes_form.text_field :title
答案 1 :(得分:0)