0

私は、データベース内の2つのテーブル間の関係を保存するこのフォームを持っています

トリートメントbelongs_to :category

カテゴリーhas_many :treatments

処理が作成されると、カテゴリの ID を保存する必要があり、カテゴリをドロップダウン リストにしたい場合、フォームのコードは次のとおりです。

<%= form_for(@treatment) do |f| %>  
  <div class="field">
    <select> 
      <% Category.find(:all).each do |cat| %>   
        <option><%= cat.name %></option>  
      <% end %>
    </select>
  </div>

<div class="field">
  <%= f.label :name %><br />
  <%= f.text_field :name %>
</div>

<div class="actions">
  <%= f.submit %>
</div>

cat.idわかりましたので、すべてのカテゴリ名を表示できましたが、フォームで保存する方法にちょっと迷っています

ところで、気付いていないのであれば、私はレールにまったく慣れていません:)

何かご意見は ?

アップデート

ここに生成されたhtmlがあります

<div class="field">
  <label for="treatment_category">Category</label>
  <br>
    <select id="category_category_id" name="category[category_id]">
    <option value="">Velja flokk</option>
    <option value="1">Nudd</option>
    <option value="2">Heilun</option>
    <option value="3">Nálastunga</option>
  </select>
</div>

oky は、html の変更にエラーがあることに気付きましたid="treatment_category_id"。ショー ビューで、治療に関連するカテゴリが表示されますが、その名前は次のようになります。Category:0x3eb7d90

これが私の見解です。これは単なる基本的な足場ですが、追加しました.name

<p>
 <b>Category:</b>
  <%= @treatment.category.name %>
</p>

<p>
  <b>Name:</b>
  <%= @treatment.name %>
</p>
4

1 に答える 1

1

HTML SELECT BOX を使用して、値を id 値に設定し、テキストをカテゴリの名前に設定します。複数の ID を保存する必要がある場合は、JavaScript を使用して非表示の入力に ID の値を追加し、フォームが投稿されたときに保存することができます。

于 2012-11-06T21:22:50.850 に答える