在Rails上使用simple_form时出错

时间:2017-06-20 09:33:18

标签: ruby-on-rails simple-form

我试图呈现一个表单,但它发出了错误,我无法找到原因。

控制器

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

这是我的表格

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

我得到&#34;无法写出未知属性builder&#34;。我曾经做过这样的事情并且有效但是这次我无法让它工作

由于

1 个答案:

答案 0 :(得分:0)

  

无法编写未知属性构建器

这是因为这一行<%= simple_form_for(@student, @learning_instrument) do |f| %>。您必须为嵌套资源定义simple_form_for,如下所示

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