我有这个tripbuilder,我想分配类别。因此,我将模型设置为行程可以包含数据库中类别表中的任何(或更多)类别。然而;我不知道如何设置表单允许用户通过复选框选择类别。因为在这种情况下,fields_for听起来不是一个可靠的方法(因为我想看到所有带有复选框的类别并选择我想要的多个类别)。任何人都可以帮助我吗?
我尝试过这种形式:
<%= form_for @trip, :html => {:multipart => true} do |a| %>
<%= a.label :title, "Routetitel" %>
<%= a.text_field :title %>
<%= a.label :description, "Omschrijving" %>
<%= a.text_area :description %>
<%= a.fields_for :categories do |cat| %>
<%= cat.check_box :name %>
<% end %>
<%= a.submit 'Verstuur' %>
<% end %>
答案 0 :(得分:1)
首先,您需要设置旅程和类别之间的关系,如下所示:
class Trip < ActiveRecord::Base
has_and_belongs_to_many :categories
end
然后你可以像这样建立表格:
<%= form_for @trip, :html => {:multipart => true} do |a| %>
<%= a.label :title, "Routetitel" %>
<%= a.text_field :title %>
<%= a.label :description, "Omschrijving" %>
<%= a.text_area :description %>
<% Category.all.each do |cat| %>
<%= check_box_tag "trip[category_ids][]", cat.id, @trip.catergory_ids.include?(cat.id)
<% end %>
<%= a.submit 'Verstuur' %>
<% end %>
答案 1 :(得分:0)
是的,可以使用选择标记的select tag和multiple
属性来完成。
<% = a.select :categories, Category.all.collect {|c| [c.name, c.id]}, :include_blank => true', :multiple => "multiple" %>
答案 2 :(得分:0)
请按照以下说明修改您的fields_for并查看!!!!
<%= a.fields_for "categories[]" do |cat| %>
<%= cat.check_box :name %>
<% end %>