簡體   English   中英

在Rails 4中對嵌套屬性進行多重選擇

[英]Multiple Select for nested attributes in rails 4

我有這個代碼

class Department < ActiveRecord::Base
   has_many :admin_permissions
   accepts_nested_attributes_for :admin_permissions
end

視圖:

= ep.fields_for :department, dept_object do |dept|
    = dept.fields_for :admin_permissions, @user.admin_permissions.new(department: dept.object) do |ap|
      = ap.collection_select :permission_type, AdminPermission.permission_types.map{ |dp| [dp.first, dp.first.humanize] }, :first, :second, {}, { :multiple => true, class: 'form-control' }

但是在按下“提交”按鈕后的參數中,參數如下所示:

"department_attributes"=>
  {"company_id"=>"2",
   "name"=>"",
   "admin_permissions_attributes"=>{"0"=>{"permission_type"=>["", "human_resource"]}}},

代替

"department_attributes"=>
  {"company_id"=>"2",
   "name"=>"",
   "admin_permissions_attributes"=>{"0"=>{"permission_type"=>"hr"}, "1" => {"permission_type" => "manager"}}}

如何通過多項選擇實現這一目標? 謝謝!

您的語法看起來正確,但是您可以嘗試將:multiple刪除

ap.collection_select :permission_type, AdminPermission.permission_types.map{ |dp| [dp.first, dp.first.humanize] }, :first, :second, {}, :multiple => true

但是結果將始終為以下形式

"admin_permissions_attributes"=>{"0"=>{"permission_type"=>["", "human_resource", "management"]}}}

它們將沒有各自的ID,但將作為列表傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM