ActiveRecord查询别名字段名称输出

时间:2013-06-03 19:46:02

标签: ruby-on-rails

假设我有一张表 World

我在表格中有一个名为 foo 的字段。我想查询 World 表并选择 foo ,但我希望在随后转换为JSON输出时将其别名为 bar 。 / p>

有没有办法为这一个ActiveRecord查询别名字段名?不希望通过整个应用程序对字段进行别名。

3 个答案:

答案 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?

查看有关如何执行此操作的详细信息