0

カテゴリを割り当てたいこのトリップビルダーがあります。そのため、データベースのカテゴリテーブルにある任意の(またはそれ以上の)カテゴリを旅行に含めることができるモデルを設定しました。でも; ユーザーがチェックボックスを使用してカテゴリを選択できるようにフォームを設定する方法がわかりません。この場合、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 %>
4

3 に答える 3

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 %>
于 2012-10-17T07:20:32.737 に答える
0

はい、selectタグとselectタグのmultiple属性を使用して実行できます。

    <% = a.select :categories, Category.all.collect {|c| [c.name, c.id]}, :include_blank => true', :multiple => "multiple" %>
于 2012-10-17T06:22:52.480 に答える
0

以下の説明に従ってfields_forを変更し、確認してください!!!!

<%= a.fields_for "categories[]" do |cat| %>
    <%= cat.check_box :name %>
<% end %>
于 2012-10-17T06:48:37.610 に答える