我正在尝试从一个盒子中检索所有项目的数据,一个盒子可以有隔间,我想在盒子级别获取所有隔间信息。物品是多态的,因为盒子不一定有隔间。
模型
class Box < ActiveRecord::Base
has_many :compartments
has_many :items, :as => :itemable
end
在我的控制器中,我可以通过以下方式获得结果:
@box = Box.find(params[:id])
@itemable = @box.compartments.first
@itemable = @box.compartments.last
看法
<% @items.each do |item| %>
<%= item.name %>
<% end %>
但如果我再试试
@itemable = @box.compartments
或者
@itemable = @box.compartments.find(:all)
我得到错误
undefined method `items' for #<ActiveRecord::Array>
或者
undefined method `items' for #<ActiveRecord::Relation>
任何人都可以帮助从所有隔间获取结果吗?