如何在我的视图中命名参数,以便在我提交表单时构建一个数组?

How do I name parameters in my view so that an array gets built when I submit my form?

我在用Rails5.我有这个型号

class Scenario < ApplicationRecord
  belongs_to :grading_rubric, optional: true
  has_many :confidential_memo
  has_many :scenario_roles, :dependent => :destroy
  has_many :roles, :through => :scenario_roles
    …
  accepts_nested_attributes_for :roles
end

我在我的视图中动态创建角色元素,但在提交它们时无法处理它们。我从客户那里提交以下表格

.   utf8:✓
.   authenticity_token:n2/51OSHlNP+1E7qnLku/gXtCjUk/MfMxwsrNpUirR2IbQddOzP1/OClL50ClCPvDNIowvdsqpVNmer37Egp4w==
.   scenario[title]:title #8
.   scenario[abstract]:abstract
.   scenario[roles][name]:wwz
.   scenario[roles][name]:aaa
.   authenticity_token:n2/51OSHlNP+1E7qnLku/gXtCjUk/MfMxwsrNpUirR2IbQddOzP1/OClL50ClCPvDNIowvdsqpVNmer37Egp4w==

看到我有两个不同的参数,名称为“scenario[roles][name]”。但在服务器端,它只获取两个参数之一。这是我日志中的内容...

Parameters: {"utf8"=>"✓", "authenticity_token"=>"n2/51OSHlNP+1E7qnLku/gXtCjUk/MfMxwsrNpUirR2IbQddOzP1/OClL50ClCPvDNIowvdsqpVNmer37Egp4w==", 
 "scenario"=>{"title"=>"title #8", "abstract"=>"abstract", "roles"=>{"name"=>"aaa"}}}

我需要在我的视图中命名我的参数以便在我的服务器上获取多个参数?

accepts_nested_attributes_for :roles 要求参数为 roles_attributes

所以在表格中你应该像这样

 scenario[roles_attributes][][name]

并且在 rails 中,您将在 params[:scenario][:roles_attributes] 中收到一个散列数组,每个散列都有一个名称条目。