我在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.ancestry 时,结果为:
undefined method `ancestry' for #<ActiveRecord::Relation:0x007fce5e61dcb0>
当我尝试检查那个值时也一样......
我在这里做错了什么?为什么我无法使用祖先值?
谢谢
答案 0 :(得分:0)
获取一个真实的实例,所以替换:
category = Category.where('my_category_id = ?', @game.car_category_id)
使用:
category = Category.where('my_category_id = ?', @game.car_category_id).first
不过,这应该在您的控制器中完成。不在你看来。 (并使用范围不会伤害:))