我知道部分导轨,但似乎我只能使用部分重复使用完全相同的形式。
如果我有两种形式只在一个字段中有所不同怎么办?例如,在我的课堂应用程序中,我有一个用于同学评分的表单和一个用于教师评分的表单。
老师的表格如下。对等分级表单完全相同,减去grade
字段。我该如何干这个?
<%= form_for @doc,
url: student_homework_document_path(student_id: @doc.submitter_id,
id: @doc.id),
html: { multipart: true } do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :grade %>
<%= f.number_field :grade %>
<%= f.label :graded_file %>
<%= f.file_field :graded_file %>
<%= f.label :graded_file_source_code %>
<%= f.file_field :graded_file_source_code %>
<%= f.submit "Submit grading", class: "btn btn-large" %>
<% end %>
答案 0 :(得分:1)
我原本以为你有一个叫做老师的控制器,一个叫做同伴或者什么的控制器。您可以保持表单相同,但是为对等分级方法添加变量,例如@peer_grader = true
。然后在您的表单中添加:
<% if @peer_grader = true %>
<%= f.label :grade %>
<%= f.number_field :grade %>
<% end %>
您还需要在两个设置为正确路径的控制器中设置另一个名为@url的变量,然后将表单更新为:
<%= form_for @doc, url: @url, html: { multipart: true } do |f| %>