3

我正在使用 Rails 3.1 和 Ruby 1.9.2 以及 Active Admin 来构建 CMS。这是我的 Place 和 Image 模型:

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 :imagehas_many :imagesaccepts_nested_attributes_for :imageaccepts_nested_attributes_for :images并且在我的表单中更改p.input :imagep.input :images,则错误消失并且 Formtastic 正确呈现包含所有可用图像对象的多选输入元素。那么,当我使用has_one关联而不是查看选择输入元素时,为什么会出现此错误?

4

1 回答 1

2

根据https://github.com/gregbell/active_admin/issues/575 ,这是 formtastic 和活动管理员之间的错误 - 我建议您在 github 上关注该问题并向他们解释您的情况,它可能会提示修复,如果不止一名社区成员报告了该问题。

于 2011-11-08T22:00:57.797 回答