我有这个表格来保存我的数据库中的两个表之间的关系
治疗belongs_to :category
类别has_many :treatments
创建治疗时,它应该保存类别的ID,我希望该类别是下拉列表,这是我的表单代码:
<%= form_for(@treatment) do |f| %>
<div class="field">
<select>
<% Category.find(:all).each do |cat| %>
<option><%= cat.name %></option>
<% end %>
</select>
</div>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="actions">
<%= f.submit %>
</div>
Okey所以我能够显示所有类别的名称,但我有点失去了我应该如何保存cat.id
表格
顺便提一下,如果您没有注意到,我对rails非常陌生:)
有什么想法吗?
更新
这是生成的html
<div class="field">
<label for="treatment_category">Category</label>
<br>
<select id="category_category_id" name="category[category_id]">
<option value="">Velja flokk</option>
<option value="1">Nudd</option>
<option value="2">Heilun</option>
<option value="3">Nálastunga</option>
</select>
</div>
okey注意到html中的错误已更改id="treatment_category_id"
,现在在我的展示视图中,我看到类别与处理相关联,但其名称类似于Category:0x3eb7d90
这是我的观点,它只是一个基本的脚手架,但我添加了.name
<p>
<b>Category:</b>
<%= @treatment.category.name %>
</p>
<p>
<b>Name:</b>
<%= @treatment.name %>
</p>
答案 0 :(得分:1)
使用HTML SELECT BOX并将值设置为id值,将文本设置为类别名称。 如果你需要保存超过1个id,那么你可以使用javascript附加一个隐藏的输入,其中包含id的值,以便在发布表单时保存。