Ruby on rails 使用多模式窗体在rails3中创建新对象

Ruby on rails 使用多模式窗体在rails3中创建新对象,ruby-on-rails,ruby-on-rails-3.2,multi-model-forms,Ruby On Rails,Ruby On Rails 3.2,Multi Model Forms,就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项:销毁 接受\u嵌套的\u属性\u用于:

就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项:销毁
接受\u嵌套的\u属性\u用于:项目\u审核
结束

class ItemReview
很明显,一个项目可以有多个评审,但当我创建一个项目时,我希望至少有一个评审。所以我想在创建项目时以单一的形式获取项目和第一次审阅

我使用以下观点:

<%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>

添加项目审阅
将不起作用,因为当前没有与
@item
关联的项目审查(
@item=item.new
),在保存@item之前,我无法创建新的项目审查。在那种情况下我该怎么办

我知道一种可能性是模型独立形式,但我不能用上面的东西让生活变得简单吗


PS:我正在使用bootstrap,以防万一,如果这有帮助的话。

有一些方法可以实现项目评审实例。关键是创建一个包含一些嵌套实例的实例,而不进行实际保存

@item = Item.new
@item.item_reviews.build
然后以你的形式

form_for @item do |f|
...
  f.fields_for :item_reviews do |ff|

有了这段代码,就有了一个review实例,您可以呈现表单

耶!我同意存在一个review实例,但它仍然没有呈现。我自己得到了:->因为item_reviews是一个数组,这就是问题所在。使用中的建议修复了它
form_for @item do |f|
...
  f.fields_for :item_reviews do |ff|