假设我有一张表 World 。
我在表格中有一个名为 foo 的字段。我想查询 World 表并选择 foo ,但我希望在随后转换为JSON输出时将其别名为 bar 。 / p>
有没有办法为这一个ActiveRecord查询别名字段名?不希望通过整个应用程序对字段进行别名。
答案 0 :(得分:11)
只需在select
方法调用中使用SQL别名功能:
w = World.select("foo as bar").first
w.bar # returns value for foo
w.foo # ActiveModel::MissingAttributeError
答案 1 :(得分:1)
我尽量避免编写 SQL,所以我宁愿使用 ARel 来构建查询。类似的东西
World.select(World.arel_table['foo'].as('bar'))
使用一些语法糖,它只是:
at = World.arel_table
World.select(at['foo'].as('bar'))
答案 2 :(得分:0)
您可以在您的世界模型中覆盖to_json
方法。在How to override to_json in Rails?