我想在activerecord关系上定义一个自定义方法,例如:
Transaction.all.summed_values
Run Code Online (Sandbox Code Playgroud)
一个简单的例子是summed_values应该sum(:value)在哪里评估关系.
我应该在哪里定义方法summed_values?看起来应该是ActiveRecord::Relation.如果应该直接在那里,我应该把它放在哪个文件中?
另外,如果这个新方法只对Transactions 有意义,有没有办法告诉rails只为ActiveRecord::Relations组成的Transactions 定义这个方法?
Tan*_*ili 11
self.summed_values直接在事务模型中创建方法.
小智 6
你应该使用扩展
Transaction.all.extending do
def summed_values
sum(:what_you_want)
end
end
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息:ActiveRecord::QueryMethods