ActiveRecord:如何选择辅助方法结果作为字段?

时间:2015-03-26 10:28:45

标签: ruby-on-rails ruby activerecord rails-activerecord

使用活动记录时,我可以选择以下字段:

Model.select(:a_col,:b_col)

如果模型定义了一些辅助方法,那么我这样做(感觉很蹩脚):

Model.all.map{|m|{a:m.a_col,b:m.b_col,c:m.someMethodCall()}}

有没有办法像这样做?

Model.select(:a_col,:b_col,:someMethodCall)

1 个答案:

答案 0 :(得分:6)

不,这是不可能的。 select将符号转换为相应的SQL数据库列

Model.select(:foo)

变为

SELECT foo FROM models

相反
SELECT * FROM models

您的数据库不了解Ruby类中定义的方法。因此,您无法实现的目标。