1

私は最近、 Ryan Batesによるネストされたフォームに関するチュートリアルに従い、基本的に彼が他の名前で行ったのと同じことを行いました。注文フォームで割り当てをネストしたかったので、その注文に対するすべてのパンの割り当てを作成したいと思います。ユーザーはフォームにカウントを入力する必要があります。

だから私のコントローラはこのようになります

 def new
   @order = Order.new
   @buns = Bun.all
   @buns.each do |bun|
     @order.assignments.build(:bun_id => bun.id)
   end
 end

_form パーシャルは次のようになります

  <%= form_for(@order) do |f| %>
    <div class="field">
      <%= f.label :user_id %><br />
      <%= f.number_field :user_id %>
    </div>
    <div id="assignments" class="field">
      <% f.fields_for :assignments do |builder| %>
        <div id="assignment" class="field">
          <%= builder.label :count, "Anzahl" %>
          <%= builder.text_field :count %>
          <%= builder.object.bun_id %>
        <% end %>
      </div>
    </div>
    <div class="field">
      <%= f.label :due_to %><br />
      <%= f.datetime_select :due_to %>
    </div>
    <div class="actions">
      <%= f.submit %>
    </div>
  <% end %>

Order モデルにはこの部分があります

has_many :assignments
has_one :user

accepts_nested_attributes_for :assignments

そして、割り当てはこれをモデル化します:

attr_accessible :bun_id, :order_id, :count
belongs_to :bun
belongs_to :order

割り当てをログに記録すると、ビルドする必要があるすべてのものがあるのに、フィールドがレンダリングされなかったのはなぜですか?

ご協力いただきありがとうございます!

4

1 に答える 1

1

erbに等号(=)がありません:

 <%= f.fields_for :assignments do |builder| %>
于 2012-09-23T09:02:41.773 に答える