Rails 上的 simple_form 出错
Error with simple_form on Rails
我正在尝试呈现一个表单,但它抛出了一个错误,我找不到它的原因。
控制器
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 %>
我正在 "can't write unknown attribute builder
"。我已经做过几次这样的事情并且它起作用了但是这次我无法让它起作用
谢谢
can't write unknown attribute builder
这是因为这一行<%= simple_form_for(@student, @learning_instrument) do |f| %>
。您必须为嵌套资源定义simple_form_for
,如下所示
<%= simple_form_for [@student, @learning_instrument] do |f| %>
我正在尝试呈现一个表单,但它抛出了一个错误,我找不到它的原因。
控制器
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 %>
我正在 "can't write unknown attribute builder
"。我已经做过几次这样的事情并且它起作用了但是这次我无法让它起作用
谢谢
can't write unknown attribute builder
这是因为这一行<%= simple_form_for(@student, @learning_instrument) do |f| %>
。您必须为嵌套资源定义simple_form_for
,如下所示
<%= simple_form_for [@student, @learning_instrument] do |f| %>