我的播放器和注册模型之间具有has_and_belongs_to_many关联(注册用于事件)。创建注册列表后,我将显示所有玩家的列表,并显示collection_check_boxes以便为该注册列表选择一个或多个玩家。
理想情况下,我想将此列表显示为表格。第一列复选框,第二列Player.name,第三列Player.club等。
问题是我找不到在每个外观中访问Player的每个属性的方法,因此无法格式化表格。相反,我只能生成一个标签。
<%= f.collection_check_boxes :player_ids, @players, :id, :first_name do |b| %>
<%= b.check_box %>
<%= b.label %>
<% end %>
我尝试在Player模型中创建一个方法以在标签内显示更多属性,但这并不理想。
def player
"#{first_name} #{last_name} #{club} ..."
end
<%= f.collection_check_boxes :player_ids, @players, :id, :player do |b| %>
这是我的代码:
class Player < ApplicationRecord
has_and_belongs_to_many :registrations, dependent: :destroy
def player
"#{first_name} #{last_name} #{club}"
end
end
class Registration < ApplicationRecord
belongs_to :fixture
has_and_belongs_to_many :players
end
<%= simple_form_for(@registration) do |f| %>
<div class="form-inputs">
<%= f.association :fixture %>
<table class="table col-md-4">
<thead>
<tr>
<td>
<!-- check box -->
</td>
<th>
Name (Primary Venue)
</th>
</tr>
</thead>
<tbody>
<%= f.collection_check_boxes :player_ids, @players, :id, :player do |b| %>
<tr>
<td>
<div class="collection-check-box">
<%= b.check_box %>
</div>
</td>
<td>
<div class="collection-check-box">
<%= b.label %>
</div>
</td>
</tr>
<% end %>
</tbody>
</table>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
我的问题是,如何在具有多个列引用Player属性的表中显示此check_box收集列表?