访问范围时出现此错误。
这是AR模型
class StatisticVariable < ActiveRecord::Base
attr_accessible :code, :name
has_many :statistic_values
scope :logins, where(code: 'logins').first
scope :unique_logins, where(code: 'unique_logins').first
scope :registrations, where(code: 'registrations').first
end
当我尝试使用
StatisticVariable.logins
或任何其他范围时,它会给出:NoMethodError: undefined method `default_scoped?'
如果我将范围配置为类方法,那么它将完美地工作。
def self.registrations
where(code: 'registrations').first
end
请指导我了解并解决此问题。
最佳答案
您所谓的scopes
不是作用域:它们不是可链接的。
我猜想Rails会尝试在结果中附加一个潜在的default_scope
,这会导致失败。
做类似的事情:
scope :logins, where(code: 'logins')
scope :unique_logins, where(code: 'unique_logins')
scope :registrations, where(code: 'registrations')
def self.login
logins.first
end
关于ruby-on-rails - 未定义的方法“default_scoped?”在访问范围时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12365128/