rails嵌套模型表单has_one关联

Rod*_*rek 5 ruby-on-rails ruby-on-rails-3 simple-form

我使用simple_form gem,我需要做一个嵌套的表单,但我遇到麻烦是一些代码:

我有两个型号:

Apiphones:

class Apiphone < ActiveRecord::Base
  attr_accessible :key, :phone
  validates_presence_of :phone
  belongs_to :store
end
Run Code Online (Sandbox Code Playgroud)

商店:

class Store < ActiveRecord::Base
  has_one :apiphone
  accepts_nested_attributes_for :apiphone
end
Run Code Online (Sandbox Code Playgroud)

在我看来:

<%= simple_form_for [@group,@store] do |f| %>
    <%= f.simple_fields_for :apiphone do |ph| %>
      <%= ph.input :phone %>
    <% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

但没有任何表现,任何想法?

jvn*_*ill 21

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

def new
  @store = Store.new
  @store.build_apiphone
end
Run Code Online (Sandbox Code Playgroud)