Ich habe ein Problem, wenn ich versuche, ein Modell mit mehreren Ebenen von accresents_nested_attribetus_for zu speichern.Rails 4 Strong Parameter bei Multiple-Level accresents_nested_attributes_for
Mein Anwendungsfall ist, dass es eine Benutzerseite gibt, auf der der Benutzer mehrere Fragen und auch mehrere Antworten pro Frage erstellen kann.
Was ist passiert, dass, da es auf der einreichen Seite mehrere Fragen sein, die Parameter Hash für den Benutzer, auf einreichen, wie folgt aussieht:
{"user"=>{"questions_attributes"=>{"0"=>{"desc"=>"question", "answers_attributes"=>{"0"=>{"ans"=>""}}}}}}
Und als solche, die Fehler, die ich bekommen habe ist " Nicht erlaubter Parameter: 0 ". Wie würde ich die Berechtigungen für starke Parameter korrekt einrichten, damit ich alle Modelle korrekt speichern kann? Ich kann durch die Fragen radeln und jeden einzelnen retten, und das funktioniert, aber ich hatte gehofft, dass es einen saubereren Weg geben würde.
user.rb
has_many :questions
accepts_nested_attributes_for :questions
question.rb
belongs_to :user
has_many :answers
accepts_nested_attributes_for :answers
answer.rb
belongs_to :question
users_controller.rb
def update
user = User.find_by_id params[:id]
user.questions.create question_params(params[:user])
end
def question_params(params)
params.require(:question_attributes).permit(:desc, {:answers_attributes => [:ans]}
end
Es funktioniert nicht. Immer das **: ans ** -Attribut als ** Unberechtigt ** sagen – Sachin
Hat jemand einen Weg gefunden, es zum Laufen zu bringen? Ich habe das gleiche Problem auf Rails 5 – lkartono