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

时间:2016-11-18 15:22:52

标签: ruby-on-rails arrays view parameters ruby-on-rails-5

我正在使用Rails 5.我有这个模型

BigIntegerNumber operator+(BigIntegerNumber row2)
{
     return CharRow::operator+(row2);
}

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

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

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

.   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==

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

1 个答案:

答案 0 :(得分:1)

accepts_nested_attributes_for :roles要求参数为roles_attributes

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

 scenario[roles_attributes][][name]

在rails中,您将在params[:scenario][:roles_attributes]中收到一组哈希值,每个哈希值都有一个名称条目。