2017-06-20 2 views
0

ich versuche, ein Formular zu rendern, aber es wirft einen Fehler und ich kann keinen Grund dafür finden.Fehler mit simple_form on Rails

Controller

def new 
@student = Student.find(params[:student_id]) 
@learning_instrument = LearningInstrument.new 
end 

def create 

@student = Student.find(params[:student_id]) 
@learning_instrument = LearningInstrument.new(learning_instrument_params) 

@learning_instrument.student = @student 


if @learning_instrument.save 
    redirect_to student_path(@student) 
else 
    render :new 
end 
end 


private 

def learning_instrument_params 
    params.require(:learning_instrument).permit(:level, :student_id, :instrument_id) 
end 

das ist meine Form

<%= simple_form_for(@student, @learning_instrument) do |f| %> 
    <%= f.error_notification %> 

    <%= f.input :level %> 
    <%= f.association :instrument, collection: Instrument.all %> 
    <%= f.hidden_field :student, value: @student %> 

    <%= f.button :submit %> 
<% end %> 

Ich erhalte "unbekanntes Attribut nicht builder schreiben kann". Ich habe Sachen wie dies einige Male getan und es funktionierte, aber dieses Mal habe ich es nicht

Dank an die Arbeit kann

Antwort

0

kann nicht schreiben unbekanntes Attribut builder

Dies liegt daran, dieser Linie <%= simple_form_for(@student, @learning_instrument) do |f| %> .Sie haben simple_form_for für verschachtelte Ressourcen unter wie definieren

<%= simple_form_for [@student, @learning_instrument] do |f| %> 
+0

Mann fühle ich mich dumm ... ich habe die Klammer nicht bemerkt statt eckigen Klammern –

+0

@CarlosSilva Wenn es gelöst hat, markieren Sie es als akzeptiert! – Pavan

Verwandte Themen