Activerecord Formtastic form抛出;“未定义的方法”;有一个关联时出错
我正在使用Rails 3.1和Ruby 1.9.2以及Active Admin来构建CMS。以下是我的位置和图像模型: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
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,我认为可能值得一试。似乎与相关(截至目前还没有答案)