我可以从刚刚定义的模型代码中调用命名范围吗?

Lan*_*Lan 6 ruby-on-rails

这是我的模型,我试图打电话,self.red但它不起作用.这甚至可能吗?

# Shirt has size and color
class Shirt < ActiveRecord::Base
    scope :red, where(:color => 'red')

    def find_red
        return self.red
    end
end
Run Code Online (Sandbox Code Playgroud)

ffl*_*r05 9

尝试Shirt.red
self.red将是一个对象方法. scope :red已经是一个类方法,所以你不必编写一个方法find_red来执行查询,Shirt.red已经这样做了.