2017-06-20 39 views
0

我想呈现一个表单,但它抛出一个错误,我找不到原因。错误与在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 %> 

我收到 “不能写未知属性builder”。我做这样的东西有些时候,它的工作,但这个时候,我不能让它的工作

感谢

回答

0

不能写未知属性建设者

这是因为这条线<%= simple_form_for(@student, @learning_instrument) do |f| %>。你的必须定义为simple_form_for嵌套资源像下面

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

男人我感到愚蠢......我没有注意到圆括号而不是方括号 –

+0

@CarlosSilva如果它解决了你的问题,将它标记为已接受! – Pavan