1

私はnested_formジェムを使用しました。フォームに何かを送信しようとすると、モデルCan't mass-assign protected attributes:itemsを既に入れていても、メッセージが表示attr_accessibleされます。

形:

<%= nested_form_for(@goods_in) do |f| %>
...

<%= f.fields_for :items do |i| %>
<td><%= i.text_field :description, :autocomplete => :off%></td>
<td><%= i.text_field :quantity, :autocomplete => :off %></td>
<th><%= i.link_to_remove "Remove this item" %></th>
<% end %>
<%= f.submit :"Submit Delivery" %>
<% end %>

Goods In Model:class GoodsIn < ActiveRecord::Base belongs_to :supplier has_many :items

attr_accessible :c4lpono, 
              :courier, 
              :deliverydate,  
              :deliverynoteno,  
              :destination,  
              :notes,  
              :quantity,  
              :signedby,
              :supplier_id,
              :partcode_ids

accepts_nested_attributes_for :supplier

validates :c4lpono, 
              :deliverydate,  
              :deliverynoteno,  
              :destination,  
              :quantity,  
              :signedby,
              :presence =>true                  

end

項目モデル

class Item < ActiveRecord::Base
belongs_to :goods_in

attr_accessible :quantity,
              :partcode,
              :description,
              :goods_in_id


accepts_nested_attributes_for :goods_in


end

コントローラーの商品:

def create
@goods_in = GoodsIn.new(params[:goods_in])
end
4

3 に答える 3

2

追加する必要があります

attr_accessible :items_attributes

そして、ここにドキュメントへのリンクがあります:)

于 2012-08-01T08:41:21.477 に答える
0

モデルで何を達成しようとしているのかを伝えるのは難しいですが、次のことが必要だと思います:

GoodsIn には、 accept_nested_attributes_for :items の関係が必要です。belongs_to と accept_nested_attributes_for はオフです。

于 2012-10-09T05:22:20.083 に答える
0

Goods モデルにエラーがあると思います。

has_many :itemsの代わりに読む必要がありhas_many :itemます。

于 2012-08-01T08:30:07.337 に答える