【发布时间】:2012-08-23 08:34:09
【问题描述】:
就 Rails 而言,我是 n00b。我正在尝试在我的第一个 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 关联的 item_review (@item = Item.new) 在我保存 @item 之前,我无法创建新的 item_review。在这种情况下我该怎么办。
我知道一种可能性是独立于模型的形式,但我不能使用上面的东西来简化生活。
PS:我正在使用引导程序,以防万一。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.2 multi-model-forms