2014-02-12 39 views
0

我有一個多對多的關聯,完全混淆瞭如何創建複選框。如何創建表單中的複選框,用於多對多的關聯

型號:lodge.rb

has_many :lodge_facilities, :dependent => :destroy 
    has_many :facilities, through: :lodge_facilities, :dependent => :destroy  
    accepts_nested_attributes_for :facilities 

型號:lodge_facility.rb

belongs_to :lodge 
belongs_to :facility 

型號:facility.rb

has_many :lodge_facilities, :dependent => :destroy 
has_many :facilities, through: :lodge_facilities, :dependent => :destroy 

在我的形式,我試圖

<%= form_for @lodge, :class =>'lodge_form', url: admins_lodge_path, method: :put,:html => {:multipart => true} do |f|%> 
<%= f.fields_for :lodge_facilities do |fac| %> 
    <%= fac.check_box :ac %> 
    <%= fac.label :ac,'AC' %> 
    <%= fac.check_box :wifi %> 
    <%= fac.label :ac,'Wifi' %> 
<% end %> 

這顯示覆選框,但是當我在我的控制檯提交表單我看到Unpermitted parameters: lodge_facilities 在我的控制器中我已經添加

def lodge_params  
params.require(:lodge).permit(lodge_facilities_attributes:[:id,:lodge_id,:lodge_facility_id],facilities_attributes: [:id,:ac,:wifi,:internet,:bar,:restaurant,:gym,:pool,:laundry,:parking,:transportation]) 
     end 

我失去了什麼?

+1

嘗試這種在許可證'lodge_facilities:[:ID,:lodge_id,:lodge_facility_id]' –

回答

0

試試這個:

def lodge_params  
params.require(:lodge).permit(lodge_facilities_attributes:[:id,:lodge_id,:lodge_facility_id],lodge_facilities: [:id,:ac,:wifi,:internet,:bar,:restaurant,:gym,:pool,:laundry,:parking,:transportation]) 
     end 

也可以使用nested_form寶石

https://github.com/ryanb/nested_form

+0

都能跟得上它的不工作 – Arun

相關問題