我有一个模型“Startup”,我有另一个模型“Categorie”。这两个表是相关联的。
我想将“分类”的数据调用为“启动”的形式,此类别会显示一个复选框。在表单Startup Form中我有categorie_id。这是代码
<%= form_for(@startup) do |f| %>
<% if @startup.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@startup.errors.count, "error") %> prohibited this startup from being saved:</h2>
<ul>
<% @startup.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :description %><br />
<%= f.text_area :description %>
</div>
<div class="field">
<%= f.collection_select :round_id, Round.order(:name), :id, :name, include_blank: true %>
</div>
<div class="field">
<%= f.label :category %><br />
<%= f.text_field :category_id %>
</div>
<div class="field">
<%= f.collection_select :country_id, Country.order(:name), :id, :name, include_blank: true %>
</div>
<div class="actions">
<%= f.submit %> </div> <% end %>
如何使用复选框显示表单中类别的数据?
任何想法。
pdt:我的英语非常糟糕。
答案 0 :(得分:1)
如果初创公司只能有一个类别,您可以在视图中执行以下操作:
<div class="field">
<%= f.label :category %><br />
<%= f.collection_select :category_id, Category.all, :id , :name %>
</div>
这将输出包含所有类别的下拉菜单。确保Category模型具有属性name
。
正如你所说, a Startup属于一个类别,所以使用radiobuttons (复选框在这里用于多个关系,意味着你可以选择多个类别):
<div class="field">
<% Category.all.each do |category| %>
<%= f.radio_button :category_id, category.id %>
<%= f.label :category_id, category.name %>
<% end %>
</div>
您可能需要添加<br />
代码和html选项,以使其看起来更好。
答案 1 :(得分:0)
正如Yoshiji先生所说,你可以使用:
它将在屏幕上显示类别名称,发送的值将为id。
您可以在此处找到更多详细信息:http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select
我建议您使用simple_form gem生成表单。这是一个非常简单的宝石使用和定制!看看它;)