我希望能够一次编辑/更新多个对象,即为所有用户呈现电子邮件字段的页面。
标准方法不起作用:
form_for
需要一个id
对:put
的{{1}}请求还需要user_path
参数
如何生成表单以更新多个用户?我只想使用内置的Rails表单,而不是第三方表单。
答案 0 :(得分:1)
创建一个form_for到一个新的端点(而不是默认的PUT),你没有更新1个资源,该端点使得废话被使用。
PUT / resource / bulk(例如)
html(我还没有测试过这只是一个方案):
form_tag '/resource/bulk', method: :put do
@resources.each do |resource|
text_field_tag("#{resource.id}[email]")
end
end
动作:
#params => { 1 => { "email" => "foo@foo.com" }, 2 => { "email" => "bar@bar.com" } }
def bulk
resources = params[:form]
Resource.update(resources.keys, resources.values)
end
这只是一个有效解决方案的模式,我现在没有任何Rails应用程序或irb来测试此解决方案。