在Ruby范围内,自我指向什么?

时间:2013-09-24 11:39:08

标签: ruby-on-rails scope

我创建了以下范围:

scope :except_me, -> { where( "id != ?", self.id ) }

但是这段代码产生了一个错误:没有类别等级的属性ID。自我指向范围内的内容以及如何更正此代码?

1 个答案:

答案 0 :(得分:1)

范围内的自我指向类本身,而不是实例。 您需要将实例传递到范围以将其从查询中排除:

scope :except, -> item { where( "id != ?", item.id ) }