Rails 4 - 强参数 - 嵌套属性

时间:2016-01-21 22:07:52

标签: ruby-on-rails-4 nested-forms params

下午好!

我正在尝试将来自我的表单的params列入白名单,而我似乎无法制定正确的哈希结构。这是我到目前为止所得到的......

在HTML中:

<% @type_flag_list.each do |flag| %>
  <%= check_box_tag 'activity[flags_attributes][][flag_cd]', flag.flag_cd %><%= flag.flag_ref.description %><br/>
<% end %>

在我的模特中:

class Activity < ActiveRecord::Base
  has_many :flags
  accepts_nested_attributes_for :flags
end

在我的控制器中:

params.require(:activity)
  .permit(
    flags_attributes: [:flag_cd]
  )

当我在日志文件中转储我的参数时,我看到以下内容:

表单中的参数看起来像这样(看起来我想要它):

Parameters: {"utf8"=>"✓",authenticity_token"=>"M4pY9K2CECfJpUirHPwHQRRKgCKio+x6H7dGu/IsNNuC/jDqyPOJ4C2XrGJ6ECG9gkvzh0tmzhV/FqHd5pWSmA==", "commit"=>"Save for Later", "activity"=>{"flags_attributes"=>[{"flag_cd"=>"basic_science_research"}, {"flag_cd"=>"clinical_research"}, {"flag_cd"=>"health_policy_research"}, {"flag_cd"=>"med_edu_research"}, {"flag_cd"=>"public_health_research"}, {"flag_cd"=>"translational_research"}]}

但是当我把我的白名单转出时,我得到以下内容:

{"flags_attributes"=>[{}, {}, {}, {}, {}, {}]}

很明显,问题在于我在控制器中“允许”参数的方式,但是我尝试了很多变化而无法获得我想要显示的值,就像它们在原始形式中一样。< / p>

任何人都可以帮助发现问题或指导我找到能够获得我需要的结构的方向吗?

感谢任何帮助,谢谢!

0 个答案:

没有答案
相关问题