如何在Rails 3中使用表单中的多个模型?

时间:2011-07-14 03:37:08

标签: ruby-on-rails formtastic

我是Rails开发的新手。我有两个模型,决策和选择。每个决策都有两个选项,在保存决策时应将其添加到Choices表中。我试图弄清楚如何使用Formtastic在Rails中做到这一点,但我已经碰壁了。

我看过有关嵌套表单的Railscast,并按照Formtastic GitHub网站上的文档进行操作,但我很茫然。这就是我所拥有的。

模特:

class Decision < ActiveRecord::Base
  attr_accessible :title, :description, :user_id, :choices_attributes

  belongs_to :user

  has_many :choices, :dependent => :destroy

  accepts_nested_attributes_for :choices
end

class Choice < ActiveRecord::Base
  belongs_to :decision
end

在Decisions_Controller中:

def new
    @decision = Decision.new
    2.times do 
      @decision.choices.build
    end
  end

决定/新观点:

<% semantic_form_for @decision do |form| %>
  <%= form.inputs :title, :description %>
  <%= form.inputs :summary, :for => :choice %> 
  <%= form.buttons %>
<% end %>

我得到的是标题,描述和一个摘要(供选择)的表单字段。如何获得第二个选择并保存两个字段?

1 个答案:

答案 0 :(得分:2)

使用:for => :choices代替:for => :choice,因为您要引用该关系的名称。

<%= semantic_form_for(@decision) do |form| %>
  <%= form.inputs :title, :description %>
  <%= form.inputs :summary, :for => :choices %>
  <%= form.buttons %>
<% end %>