我已经在gemfile:中安装了祖先宝石
gem "ancestry", "~> 2.0.0"
型号:
class Category < ActiveRecord::Base
attr_accessible :..., :name, :..., :ancestry, :..., :...
#acts_as_tree
has_ancestry cache_depth: true
has_many :cars
end
当我在视图中加载相应的类别时:
- category = Category.where('my_category_id = ?', @game.car_category_id)
%div= category.inspect
输出为
[#<Category id: 58, name: "Name", ..., created_at: "2013-11-22 15:00:01", updated_at: "2013-11-24 14:54:06", ancestry: "7", car_category_id: 6205>]
因此,在列中,祖先是7的值。当我尝试显示这个值时,=category.祖先,结果是:
undefined method `ancestry' for #<ActiveRecord::Relation:0x007fce5e61dcb0>
当我试图检查该值时也是如此。。。
我在这里做错了什么?为什么我不能使用祖先值?
感谢
获取一个真实实例,因此替换:
category = Category.where('my_category_id = ?', @game.car_category_id)
带有:
category = Category.where('my_category_id = ?', @game.car_category_id).first
顺便说一句,这应该在你的控制器中完成。在你看来不是。(使用作用域不会有伤害:))