Ruby on rails 在单个页面上一次编辑/更新多个对象

Ruby on rails 在单个页面上一次编辑/更新多个对象,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,我希望能够一次编辑/更新多个对象,即为所有用户呈现电子邮件字段的页面 标准方法不起作用: form\u for需要一个具有id a:将请求放入用户路径也需要id参数 如何生成表单以更新多个用户?我只想使用内置的Rails表单,而不是第三方表单。为一个新端点(不是默认的PUT端点)创建一个表单,您不需要更新1个资源,该端点的使用毫无意义 PUT/resource/bulk(例如) html(我没有对此进行测试,它只是一个方案): 行动: #params => { 1 => { "e

我希望能够一次编辑/更新多个对象,即为所有用户呈现电子邮件字段的页面

标准方法不起作用:

  • form\u for
    需要一个具有
    id

  • a
    :将
    请求放入
    用户路径
    也需要
    id
    参数


如何生成表单以更新多个用户?我只想使用内置的Rails表单,而不是第三方表单。

为一个新端点(不是默认的PUT端点)创建一个表单,您不需要更新1个资源,该端点的使用毫无意义

PUT/resource/bulk(例如)

html(我没有对此进行测试,它只是一个方案):

行动:

#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来测试这个解决方案。

一个选项是创建一个ActiveModel“form object”,提交给一个控制器,该控制器验证表单,然后更新各种模型。另一个可能是“嵌套属性”,尽管根据我的经验,使用嵌套属性从来都不太合适。
#params => { 1 => { "email" => "foo@foo.com" }, 2 => { "email" => "bar@bar.com" } }
def bulk
  resources = params[:form]
  Resource.update(resources.keys, resources.values)
end