我想向ActiveRecord :: Relation添加一个方法,它返回一个奇异的结果,并在有0或> 1的结果时引发异常。 在SO about overriding find找到了我改编的东西,但是没有用,导致找不到方法
module FindOne
def self.included(base)
def find_exactly_one
if self.size > 1
raise "Expected exactly one, got #{self.size}"
end
first!
end
end
end
ActiveRecord::Relation.send :include, FindOne
有什么想法吗?
ruby 2.1.5 rails 4.0
答案 0 :(得分:0)
您的模块中有一个额外的end
语句,这会导致语法错误。如果删除它,则应包括您的方法。