简体   繁体   English

RoR:嵌套表格和补丁

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM