Rails 3.1 と Ruby 1.9.2 を Active Admin と共に使用して CMS を構築しています。ここに私の場所と画像のモデルがあります:
class Place < ActiveRecord::Base
has_one :image
accepts_nested_attributes_for :image
end
class Image < ActiveRecord::Base
belongs_to :place
end
Placesコントローラーの「新しい」アクションでレンダリングしているFormtasticフォームは次のとおりです。
<%= semantic_form_for [:admin, @place] do |p| %>
<%= p.inputs "Details" do %>
<%= p.input :name %>
<%= p.input :description %>
<%= p.input :phone %>
<%= p.input :address %>
<%= p.input :image %>
<% end %>
<%= p.buttons %>
<% end %>
フォームをブラウザにロードすると、次のエラーが表示されます。
undefined method `place_id' for #<Place:0xb801744>
キッカーは次のとおりです。私の Place モデルで と に変更し、has_one :image
フォームで に変更すると、エラーは消え、Formtastic は使用可能なすべての画像オブジェクトを含む複数選択入力要素を適切にレンダリングします。では、選択入力要素を表示するのではなく、関連付けを使用すると、なぜこのエラーが発生するのでしょうか?has_many :images
accepts_nested_attributes_for :image
accepts_nested_attributes_for :images
p.input :image
p.input :images
has_one