ActiveRecord查询别名字段名输出



假设我有一个表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的详细信息?

最新更新