2017-06-20 1 views
0

J'essaie de rendre un formulaire mais il y a une erreur et je ne trouve pas de raison.Erreur avec simple_form on Rails

contrôleur

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 

ceci est ma forme

<%= 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 %> 

Je reçois "ne peut pas écrire attribut inconnu builder". Je l'ai fait des trucs comme ça quelques fois et cela a fonctionné, mais cette fois, je ne peux pas obtenir de travailler

Merci

Répondre

0

ne peut pas écrire constructeur d'attribut inconnu

En effet, de cette ligne <%= simple_form_for(@student, @learning_instrument) do |f| %> .Vous devez définir simple_form_for pour ressources imbriquées comme ci-dessous

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

homme je me sens stupide ... je n'ai pas remarqué la parenthèse au lieu de crochets –

+0

@CarlosSilva Si cela a résolu votre résolu, marquez-le comme accepté! – Pavan