1

4つの属性を持つモデルFruitがあります:name, :characteristic1 ,:characteristic2,:characteristic3。フルーツテーブル:characteristic1 ,:characteristic2,:characteristic3では、フィールドは6つのチェックボックスから値を受け取ります(フルーツテーブルに6つのフィールドすべてを追加したくなかったため)、ユーザーはそのうちの3つだけを選択する必要があります。値を選択するにはどうすればよいですか。チェックボックスに入れて、:characteristic1 ,:characteristic2,:characteristic3text_fieldとして入力を受け入れる:nameフィールドを忘れずに挿入しますか?これはコントローラーで行う必要があると確信していますが、方法がわかりません。よろしくお願いします。

      <%= form_for @fruit ,:url=>{:action =>"create"} do |f| %>
      <%=f.text_field :name %>

      <%=f.fields_for :characteristics do |c| %>
        <!--Characteristics checkboxes -->
        <%end%>
       <%=f.submit "submit" %>
4

2 に答える 2

1

CharacteristicとFruitCharacteristicの2つの新しいモデルを作成するように指示します

果物は果物を通して多くの特徴を持っているでしょう特徴

そして、このAPIページを読んで、フォームの問題を解決するためのクールなものを見つけてください

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

更新: これは多対多で機能するはずです

<ul>
   <% Characteristic.all.each do |c| %>
      <li><%= check_box_tag :characteristics_ids, c.id, @fruit.characteristics.include?(c), :name => 'fruit[characteristics_ids][]' %>
      <%= label_tag :characteristics_ids, c.name %></li>
   <% end %>
</ul>
于 2012-04-27T20:37:05.943 に答える
1

ユーザーが3つのカテゴリのみを選択するように制限するため、「characteristic1」、「characteristic2」、「characteristic3」などの行に沿って、3つの選択ボックス/3セットのチェックボックスを提供することをお勧めします。次に、コントローラーで、params [:fruit] [:characteristic1]などを使用して値にアクセスできます。

于 2012-04-28T16:18:26.777 に答える