目前,一個項目belongs_to的一個公司和的has_manyItemVariants。複數爲fields_for的has_many關聯在圖中未示出
我試圖使用嵌套fields_for通過Item窗體添加ItemVariant字段,但使用:item_varariants不顯示窗體。它僅在使用單數時顯示。
我檢查了我的關聯關係,他們似乎是正確的,是否可能與項目嵌套在公司之下有關係,還是我缺少其他內容?
在此先感謝。
注意:以下代碼段中省略了不相關的代碼。
編輯:不知道這是否相關,但我使用CanCan進行身份驗證。
的routes.rb
resources :companies do
resources :items
end
item.rb的
class Item < ActiveRecord::Base
attr_accessible :name, :sku, :item_type, :comments, :item_variants_attributes
# Associations
#-----------------------------------------------------------------------
belongs_to :company
belongs_to :item_type
has_many :item_variants
accepts_nested_attributes_for :item_variants, allow_destroy: true
end
item_variant.rb
class ItemVariant < ActiveRecord::Base
attr_accessible :item_id, :location_id
# Associations
#-----------------------------------------------------------------------
belongs_to :item
end
項/ new.html.erb
<%= form_for [@company, @item] do |f| %>
...
...
<%= f.fields_for :item_variants do |builder| %>
<fieldset>
<%= builder.label :location_id %>
<%= builder.collection_select :location_id, @company.locations.order(:name), :id, :name, :include_blank => true %>
</fieldset>
<% end %>
...
...
<% end %>
謝謝!工作完美,但作爲參考,我使用RailsCast ep 196-Nested-model-form-revised。在他的新動作中,它只包含「@survey = Survey.new」而沒有關聯關係。任何想法爲什麼我需要建立協會和瑞安沒有/沒有? – 8bithero
雖然railscast會更好,但它很複雜,因爲它可以動態地在調查表中添加問題。所以它不需要預先填充任何東西。 – rewritten
我只是想爲那些對.build感到困惑的人添加一些含義,以及爲什麼Ryans不需要它。如果您在第3行的appliation_helper中查看他的代碼,則可以創建類實例。這代替了.build。希望這可以幫助其他任何人! –