0

我已经在 gemfile 中安装了祖先 gem

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>]

所以在ancestry列中的值是7。当我尝试显示此值= category.ancestry时,结果是:

undefined method `ancestry' for #<ActiveRecord::Relation:0x007fce5e61dcb0>

当我尝试检查该值时也是如此......

我在这里做错了什么?为什么我不能使用祖先价值?

谢谢

4

1 回答 1

0

得到一个真实的实例,所以替换:

category = Category.where('my_category_id = ?', @game.car_category_id)

和:

category = Category.where('my_category_id = ?', @game.car_category_id).first

顺便说一句,这应该在您的控制器中完成。在你看来不是。(并且使用范围不会伤害:))

于 2013-12-13T15:29:08.343 回答