如何让每个表单标签都独一无二

How to make each form label unique

我不认为我想做的事是可能的,但我想我会问。 我有下面的表格,呈现以下内容:

<%= form_with(model: [ @game, assignment ], local: true) do |form| %>
  <p>
    <%= form.label :name %>
    <%= form.collection_select :user_id, User.all, :id, :name, {include_blank: "Select Referee" } %>
  </p>
  <p>
    <%= form.submit %>
  </p>
<% end %>

有没有办法更改每个作业的标签,这样它就不会说“名字” 5 次,并且我可以用其他东西预设 5 个标签。我正在考虑拥有一个带有预定义标签的数组,但我不确定如何去做,因为该表格本质上是相同表格的再现 5 次,而不是一种表格。

呈现表单的部分是:

<p><%= assignment.id %> | <%= link_to assignment.game_id, game_assignment_path(@game, assignment) %></p>

<p>Edit this assignment:</p>

<%= render "assignments/form", assignment: assignment %>

也许每个表单的渲染语句都有一个循环?

在你调用部分的地方,做:

<%= render partial; "assignments/form", locals: {assignment: assignment, label: "My custom label"} %>

或者如果您在循环中呈现表单,您可以这样做:

<%- @things.each do |thing| %>
  <%= render partial; "assignments/form", locals: {assignment: assignment, label: thing.label } %>
<%- end %>

#or
<%- @things.each_with_index do |thing, index| %>
  <%= render partial; "assignments/form", locals: {assignment: assignment, label: "Member no: #{index+1}" } %>
<%- end %>


并采用以下形式:

<%= form.label :name, label %>