0
對於rails而言,我是n00b。我正在嘗試在我的第一個rails3項目中創建單個多模式表單。詳情如下:使用多模表格在rails3中創建新對象
class Item < ActiveRecord::Base
# attr_accessible :title, :body
has_many :item_reviews, :dependent => :destroy
accepts_nested_attributes_for :item_reviews
end
和
class ItemReview < ActiveRecord::Base
# attr_accessible :title, :body
belongs_to :item
end
那麼清晰,一個項目可以有多個評論,但是當我創建一個項目,我想它至少1條點評。所以我希望獲得物品並在物品創建時以單一形式進行審覈。
我使用以下幾種觀點:
<%provide(:title,'Create')%>
<h1> Add an Item review</h1>
<div class="row">
<div class="span6 offset3">
<%= form_for (@item) do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<% f.fields_for :item_reviews, @item.item_reviews do |ff| %>
<%= ff.label :shop_address %>
<%= ff.text_field :shop_address %>
<% end %>
<%= f.submit "Submit", class: "btn btn-large btn-primary" %>
<% end %>
</div>
</div>
<% f.fields_for :item_reviews, @item.item_reviews do |ff| %>
將無法工作,因爲沒有item_review與@item
目前(@item = Item.new
),直到我保存@item,我不能創建新item_review相關。在這種情況下我應該怎麼做。
我知道一種可能性是與模型無關的形式,但我不能使用上面的東西來使生活變得輕鬆。
PS:我使用引導,以防萬一,如果有幫助。
是啊!我同意審查的一個實例存在,但它仍然沒有渲染。 –
得到它自己: - >因爲item_reviews是一個數組,這就是問題所在。使用http://stackoverflow.com/questions/8271940/form-for-non-ar-model-fields-for-array-attribute-doesnt-iterate中的建議修復了它 –