Activerecord Formtastic form抛出;“未定义的方法”;有一个关联时出错

Activerecord Formtastic form抛出;“未定义的方法”;有一个关联时出错,activerecord,ruby-on-rails-3.1,formtastic,activeadmin,Activerecord,Ruby On Rails 3.1,Formtastic,Activeadmin,我正在使用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 classplace

我正在使用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
classplace
以下是我在我的Places controller中的“新建”操作中呈现的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\u id”#

这里是关键:在我的位置模型中,如果我将
has_one:image
更改为
has_many:images
并且
接受嵌套的属性\u for:image
更改为
接受嵌套的属性\u for:images
,并且在我的表单中我将
p.input:image
更改为
p.input:images
,然后错误消失,Formtastic正确渲染包含所有可用图像对象的multiselect输入元素。那么,为什么我在使用
关联而不是选择输入元素时会出现此错误呢?

根据这是formtastic和active admin之间的错误-我建议您关注github上的问题,并向他们解释您的场景,它可能会提示修复,如果有多个社区成员报告此问题。

Place是否有image\u id或image是否有Place\u id。如果后者起作用,我猜image是否有Place\u id,如果是,请尝试将image\u id放置到位。因为Place
有一个:image
,Images表中有一个指向Places表的外键。正确-但由于约定的应用似乎是错误的,即为什么它要在适当的位置查找Places_id,我认为可能值得一试。似乎与相关(截至目前还没有答案)