使用Rails 4.这是我的代码:
class Item < ActiveRecord::Base
def self.find_by_uid(uid)
where("BINARY uid = ?", uid).first
end
def self.find_by_uid!(uid)
where("BINARY uid = ?", uid).first!
end
end
当找不到记录时, find_by_uid!
在控制器中用于引发ActiveRecord::RecordNotFound
,并且find_by_uid
在内部使用(因此不会引发异常)。
有更好的方法对此进行编码吗?
答案 0 :(得分:0)
您可以通过创建范围来干燥方法:
class Item < ActiveRecord::Base
scope :by_uid, ->(uid) { where("BINARY uid = ?", uid) }
def self.find_by_uid(uid)
by_uid(uid).first
end
def self.find_by_uid!(uid)
by_uid(uid).first!
end
end