2016-12-12 1 views
0

Ich arbeite mit zwei Modellen Submission und Tag. Submissionhas_one :tag. In meinem Controller habe ich eingerichtet meine submission_params wie folgt:Schienen 5 unzulässige Parameter beim Speichern

params.require(:submission).permit(:domain, tag_attributes:[:tag_text, :notes]) 

Allerdings bin ich den Fehler bekommen: Unpermitted parameter: tag

Aus meiner log:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"BEJZXOERC3cGSZFlAL91kRJgR+YFcHd6+yMYilDyu/NyN1YviwahKwrifAQfWMdu53/NYCnOVD4NHNXSZmPk7Q==", "submission"=>{"domain"=>"test", "tag"=>{"tag_text"=>"test tag", "notes"=>"test"}}, "commit"=>"Submit"} 

Vielleicht bin ich nur rostig und habe ich etwas übersehen oder hat rails5 einen neuen trick im Umgang mit starken params? Danke im Voraus!

+1

'params. require (: submission) .permit (: domain, {tag: [: tag_text,: notes]}) ' –

+0

' * _attributes' ist das korrekte Formular, weil Sie verschachtelte Attribute an das Modell übergeben –

+0

@mr_sudaca Danke für die Antwort; Ich habe den Fehler 'AssociationTypeMismatch' bekommen, als ich das versuchte. – neanderslob

Antwort

1

log Wenn diese

accepts_nested_attributes :tag 

hier ist, wie Sie es zulassen würde:

# :_destroy is for being able to delete the nested tag 
params 
    .require(:submission) 
    .permit(:domain, tag_attributes: %i(id submission_id tag_text notes _destroy)) 
0

Sie haben tag_attributes param statt tag senden - sehen Sie Ausgabe

+0

Danke für die Antwort. Ich fürchte, ich folge nicht; Schlägst du vor, dass ich ändern muss, wie ich Felder in meiner Form neste? – neanderslob

+0

Ja, sonst würden Sie keinen richtigen Parameternamen erhalten. Ich denke, diese Links finden Sie hilfreich http://stackoverflow.com/questions/4566901/ruby-on-rails-how-do-i-o-nested-forms-with-a-has-one-relationship und http: //stackoverflow.com/questions/27569774/strong-parameters-for-nested-has-one-association –

Verwandte Themen