我有3个模特,比赛,结果和运动员。 Atletes有很多结果,种族有很多结果,而结果属于运动员和种族。我还将结果作为Races的嵌套属性。这是我的形式部分用于将结果添加到现有种族。
<%= form_for(@race) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :date %><br />
<%= f.datetime_select :date %>
</div>
<% f.fields_for :results do |r| %>
<div class="field">
<%= r.label :position %><br />
<%= r.text_field :position %>
<%= r.label :athlete_id %><br />
<%= r.text_field :athlete_id %>
</div>
<% end %>
正如你所看到的,我必须手动输入每个运动员的位置,以及他们各自的ID,这是一个真正的痛苦。我想把这个位置作为一个隐藏的领域,只需输入运动员的名字而不是id整数。当我在文本输入中键入运动员姓名时,如何将其作为athlete_id输入数据库?
答案 0 :(得分:0)
运动员是否已经存在?如果是这样,只需对价值为collection_select
的所有运动员进行athlete_id
,并且文字是运动员的名字。然后你可以选择你想要的运动员。
答案 1 :(得分:0)
我会考虑使用rails auto_complete plugin动态选择你想要选择的运动员。然后,您可以将选定的运动员分配到隐藏的区域,以确保ID关联正确发生,但仍然允许最终用户键入运动员的名称,并让潜在运动员列出您想要的范围。