2016-05-06 8 views
0

ich diesen Fehler erhalte, wenn ein Formular abschickt:Rails 4 unpermitted params Fehler

Unpermitted parameters: postal_address_type_faos 

Ich kann bestätigen, dass der params in Ordnung kommen, aber es sieht aus wie der postal_address_type_faos entfernt wird.

Dies ist die params weiße Liste:

def paper_params 
    params.require(:paper).permit(:status, :signature_id, :name, :code, 
     :create_user_id, :update_user_id, :created_at, :updated_at, 
     phone_numbers_attributes: [:id, :phone_type_id, :area_code, :number, :extension, :create_user_id, :update_user_id, :created_at, :updated_at, :_destroy], 
     postal_addresses_attributes: [:id, :postal_address_type_id, :country_id, :line_1,:line_2, :line_3, :city, :territory_id, :postal_zip_code, 
     :address_note, :latitude, :longitude, 
     :_destroy, :address_verification_status_id, :comment, 
postal_address_type_faos_attributes: [:id, :postal_address_id, :postal_address_type_id, :fao, :create_user_id, :update_user_id, :created_at, :updated_at, :_destroy]]) 
     end 

Modelle:

class Paper < ActiveRecord::Base 
    has_many :paper_postal_addresses 
    has_many :postal_addresses, through: :paper_postal_addresses 
    has_many :postal_address_type_faos, through: :postal_addresses 

    accepts_nested_attributes_for :postal_addresses 
    accepts_nested_attributes_for :postal_address_type_faos 

    has_many :phone_number_papers 
    has_many :phone_numbers, through: :phone_number_papers 

    accepts_nested_attributes_for :phone_numbers, allow_destroy: true 

class PaperPostalAddress < ActiveRecord::Base 
    belongs_to :paper 
    belongs_to :postal_address 
    has_many :postal_address_type_faos, through: :postal_address 

class PostalAddress < ActiveRecord::Base 
    has_many :postal_address_type_faos 
    has_many :postal_address_types, :through => :postal_address_type_faos 

    has_many :paper_postal_addresses 
    has_many :papers, through: :paper_postal_addresses 


class PostalAddressTypeFao < ActiveRecord::Base 
    belongs_to :postal_address_type 
    belongs_to :postal_address 
    has_many :paper_postal_addresses, through: :postal_address 

class PostalAddressType < ActiveRecord::Base 
    has_many :postal_address_type_faos 
    has_many :postal_addresses, through: :postal_address_type_faos 

Ansicht Code von der Adresse Teil ist so etwas wie dieser

<%= f.fields_for :postal_addresses do |address|%> 
     //some address stuff here 

     //then do address fao type stuff (index is populated but not shown here) 
<%= f.fields_for :postal_address_type_faos, @paper.postal_addresses[address.index].postal_address_type_faos[index] do |fa| %> 
      <%= fa.check_box :postal_address_type_id, label: fa.object.postal_address_type.name %> 
      <%= fa.text_field :fao, label: fa.object.fao %> 
    <% end %> 

    <% end %> 

Params als Rückweg:

{"utf8"=>"✓", "authenticity_token"=>"R8ukkukuykuk", 
    "paper"=>{"carrier_id"=>"", "name"=>"", "status"=>"Active","digital_id"=>"1","signature_id"=>"1", "phone_numbers_attributes"=>{"0"=>{"create_user_id"=>"1568", "phone_type_id"=>"2", "country_phone_code_id"=>"2", "area_code"=>"", 
"number"=>"", "extension"=>""}}, "postal_addresses_attributes"=>{"0"=>{"country_id"=>"", "line_1"=>"", "line_2"=>"", "line_3"=>"", "city"=>"", "territory_id"=>"", "postal_zip_code"=>"", "subterritory"=>"", "comment"=>""}, 
"1"=>{"country_id"=>"", "line_1"=>"", "line_2"=>"", "line_3"=>"", "city"=>"", "territory_id"=>"", "postal_zip_code"=>"", "subterritory"=>"", "comment"=>""}, 
"2"=>{"country_id"=>"", "line_1"=>"", "line_2"=>"", "line_3"=>"", "city"=>"", "territory_id"=>"", "postal_zip_code"=>"", "subterritory"=>"", "comment"=>""}}, 
"postal_address_type_faos_attributes"=>{"0"=>{"postal_address_type_id"=>"1", "attention"=>""}, "1"=>{"postal_address_type_id"=>"0", "fao"=>""}, "2"=>{"postal_address_type_id"=>"0", "fao"=>""}, "3"=>{"postal_address_type_id"=>"0", 
"fao"=>""}, "4"=>{"postal_address_type_id"=>"0", "fao"=>""}}}, "area_code_required"=>"", "formaction"=>"add_address", "action"=>"create", 
"controller"=>"papers"} 
+1

auch Formularansicht Code hinzufügen ... –

+0

Ich habe es einig Ansicht Sachen zu zeigen, wie die Felder in dem Teil erzeugt. Ich habe nur die relevanten Zeilen hinzugefügt – user3437721

+0

Kannst du das 'puts params' Ergebnis in deine Controller Aktion posten? –

Antwort

0

Nur Ansicht Code aus

ändern
<%= f.fields_for :postal_address_type_faos, @paper.postal_addresses[address.index].postal_address_type_faos[index] do |fa| %> 

zu

<%= address.fields_for :postal_address_type_faos, @paper.postal_addresses[address.index].postal_address_type_faos[index] do |fa| %> 
+0

Tun dies verursacht diesen Fehler, vielleicht etwas falsch mit einer Assoziation: "Kann nicht Ändern Sie die Zuordnung 'Papier # postal_address_type_faos', da sie mehr als eine andere Verknüpfung durchläuft. " – user3437721

+0

Ich denke, das Problem mit View-Code – Thorin

+0

Zurück Controller-Code als vorherige Sie haben und ändern Sie Ansicht Code Formular% = f.fields_for: postal_address_type_faos, @ paper.postal_addresses [address.index] .postal_address_type_faos [index] do | fa | %> bis% = adresse.felder_für: postal_address_type_faos, @ papier.postalische_adressen [adresse.index] .postal_address_type_faos [index] do | fa | %> – Thorin