5

我正在使用 simple_form gem,我需要做一个嵌套表单,但我遇到了一些代码:

我有两个模型:

蜜蜂:

class Apiphone < ActiveRecord::Base
  attr_accessible :key, :phone
  validates_presence_of :phone
  belongs_to :store
end

商店:

class Store < ActiveRecord::Base
  has_one :apiphone
  accepts_nested_attributes_for :apiphone
end

在我看来:

<%= simple_form_for [@group,@store] do |f| %>
    <%= f.simple_fields_for :apiphone do |ph| %>
      <%= ph.input :phone %>
    <% end %>
<% end %>

但什么都没有显示,有什么想法吗?

4

2 回答 2

21

fields_for与 with 一起使用假定accepts_nested_attributes记录已初始化。这意味着,@store.apiphone不应该nil在生成表单时使用您的模型。解决此问题的方法是确保apiphone已初始化并关联到@store(新操作和编辑操作)。

def new
  @store = Store.new
  @store.build_apiphone
end
于 2013-08-26T06:34:57.827 回答
3

我认为您忘记了在控制器中构建 apiphone,例如:

def new
 ...
 @store.build_apiphone
 ...
end
于 2013-08-26T06:34:33.127 回答