5

私はsimple_form gemを使用しており、ネストされたフォームを実行する必要がありますが、ここで問題を抱えているのはいくつかのコードです:

私は2つのモデルを持っています:

アピフォン:

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と組み合わせて使用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 に答える