我已将所有内容完全链接在一起,因此联系人belongs_to :company
和公司has_many :contacts
一切正常。我唯一的问题是在联系人#new表单中你必须输入公司ID是否可以以某种方式输入公司的名称,因为它也可以转换为后端的ID?目前我的表格看起来像这样。您可能会注意到表单底部的company_id,这是我想要更改的字段。因此,它更加用户友好,而不是插入ID,您可以插入名称或您选择的某种公司列表。请帮帮忙?
<%= form_for(@contact) do |f| %>
<% if @contact.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@contact.errors.count, "error") %> prohibited this contact from being saved:</h2>
<ul>
<% @contact.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :position %><br />
<%= f.text_field :position %>
</div>
<div class="field">
<%= f.label :email %><br />
<%= f.text_field :email %>
</div>
<div class="field">
<%= f.label :telephone %><br />
<%= f.text_field :telephone %>
</div>
<div class="field">
<%= f.label :source %><br />
<%= f.text_field :source %>
</div>
<div class="field">
<%= f.label :company_id %><br />
<%= f.text_field :company_id %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
答案 0 :(得分:4)
您可以使用collection_select
帮助程序或简单select
帮助程序来实现此目的:
<%= f.select(:company_id, Company.all.collect {|company| [company.name, company.id]}) %>
答案 1 :(得分:2)
当然可以:
<%= select_tag "company", options_from_collection_for_select(Company.all, "id", "name") %>
答案 2 :(得分:0)
您可以使用下拉列表:
看看这个如何在rails Drop down box in Rails
中执行此操作的主题然后@David Burrows建议
<select name="company[name]">
<option value="">Please select</option>
<option value="company_id[1]" selected="selected">company[name]</option>
<option value="company_id[2]">company[name]</option>
<option value="company_id[3]">company[name]</option>
</select>
应该这样做。