在我运行“Zip.code(74738).users.count”行的控制台中我收到以下错误:
DEPRECATION WARNING: Relation#first with finder options is deprecated. Please build a scope and then call #first on it instead. (called from code at /Users/lexi87/DATING/app/models/zip.rb:6)
Zip Load (12.6ms) SELECT `zips`.* FROM `zips` WHERE `zips`.`code` = 30052 ORDER BY `zips`.`id` ASC LIMIT 1
我尝试了一些事情,但仍然继续得到警告。这是它指向的原始代码:
def self.code(code)
first(:conditions => {:code => code})
end
答案 0 :(得分:2)
如果您使用的是Rails 4,请使用find_by
def self.code(code)
find_by(code: code)
end
使用Rails 3,使用where(...).first
代替动态查找器find_by_attr
(效果不佳)
def self.code(code)
where(code: code).first
end
答案 1 :(得分:1)
def self.code(code)
where(:code => code).first
end
这应该具有相同的行为:如果找到一个ActiveRecord对象,或者如果不是则为nil。