[英]RoR: Nested form and Patch
I have a form in my application with which I am looking to update fields in a column called "interest" using radio buttons which is in another model called "homework_students" so I am using (or trying!) a nested form: 我的应用程序中有一个表单,希望通过单选按钮来更新“兴趣”列中的字段,该表单在另一个名为“ homework_students”的模型中,因此我正在使用(或尝试使用)嵌套表单:
<%= form_for @homework, url: homework_homework_student_path(:homework_id => @homework, home_work_students_id => @homework_student, :controller => 'homeworks', :action => 'update_interest'), method: :patch do |f| %>
<%= f.fields_for :homework_students do |builder| %>
<%= builder.radio_button :interest, '1' %>
</label>
1
<label>
<%= builder.radio_button :interest, '2' %>
</label>
2
<label>
<%= builder.radio_button :interest, '3' %>
3
</label>
<%= f.button :submit %>
<% end %>
<% end %>
In my models: 在我的模型中:
homework.rb: homework.rb:
has_many :homework_students, :class_name => 'HomeworkStudent', dependent: :destroy
accepts_nested_attributes_for :homework_students
homework_students.rb homework_students.rb
belongs_to :homework, :class_name => 'Homework', :foreign_key => :homework_id, dependent: :destroy
The action I want to use in my controller (homeworks_controller.rb): 我想在控制器中使用的操作(homeworks_controller.rb):
def update_interest
@homework.homework_students.where(id: params[:home_work_students_id]).each do |homework_student| homework_student.update_attributes(:interest)
end
redirect_to @homework, notice: 'Homework was successfully updated.'
end
I am trying Patch here so in my routes: 我在这里尝试Patch,因此在我的路线中:
resources :homeworks do
member do
patch :update_interest
end
resources :homework_students
end
But it does not seem to use "update_interest" action. 但它似乎不使用“ update_interest”操作。 I don't have a homework_students controller either.
我也没有homework_students控制器。 I get this error, but probably more wrong with the above too.
我收到此错误,但上述错误也可能更多。
undefined local variable or method `homework_student'
Thanks. 谢谢。 Appreciate any guidance.
感谢任何指导。 Can give more info.
可以提供更多信息。
It seems your model file name is not correct.(homework_students.rb) It should be singular (homework_student.rb). 看来您的模型文件名不正确。(homework_students.rb)应该为单数(homework_student.rb)。 Also your model class name will be singular.
此外,您的模型类名称将是单数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.