0

モデル「スタートアップ」と他のモデル「カテゴリ」があります。2つのテーブルが関連付けられています。

カテゴリアのデータをスタートアップのフォームに呼び出したいのですが、このカテゴリはチェックボックスで表示されます。フォームのスタートアップフォームの中に、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:私の英語は本当に悪いです。

4

2 に答える 2

1

Startup が 1 つの Category しか持てない場合、ビューで次のようにすることができます。

<div class="field">
  <%= f.label :category %><br />
  <%= f.collection_select :category_id, Category.all, :id , :name %>
</div>

これにより、すべてのカテゴリを含むドロップダウン メニューが出力されます。Category モデルに属性があることを確認してくださいname

あなたが言ったように、 Startup は 1 つの Category に属しているため、ラジオボタンを使用します (チェックボックスは複数の関係のためにここにあり、複数のカテゴリを選択できることを意味します):

<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 オプションを追加する必要がある場合があります。

于 2012-12-05T16:41:48.727 に答える
0

MrYoshiji が言うように、次を使用できます。

画面にカテゴリ名が表示され、送信される値が id になります。

ここで詳細を見つけることができます: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select

simple_form gem を使用してフォームを生成することをお勧めします。使用およびカスタマイズが非常に簡単な宝石です。それを見てください ;)

于 2012-12-05T17:03:55.110 に答える