假设我有一个表World
我在表中有一个名为foo的字段。我想查询World表并选择foo,但我想在随后转换为JSON输出中将其别名为bar。
是否有任何方法来别名字段名称只为这一个ActiveRecord查询?不希望在整个应用程序中使用字段别名
只需在select
方法调用中使用SQL别名特性:
w = World.select("foo as bar").first
w.bar # returns value for foo
w.foo # ActiveModel::MissingAttributeError
我尽量避免编写SQL,所以我宁愿使用ARel来构建查询。就像
World.select(World.arel_table['foo'].as('bar'))
使用一些语法糖,它只是:
at = World.arel_table
World.select(at['foo'].as('bar'))
您可以在您的World模型中覆盖to_json
方法。在这里查看如何在Rails中重写to_json的详细信息?