Ruby on rails ActiveRecord查询别名字段名输出

Ruby on rails ActiveRecord查询别名字段名输出,ruby-on-rails,Ruby On Rails,假设我有一个桌子世界 我在表中有一个名为foo的字段。我想查询World表并选择foo,但我想在随后转换为JSON输出时将其别名为bar 有没有办法为这一个ActiveRecord查询别名字段名?不希望在整个应用程序中为字段添加别名。您可以在您的世界模型中将重写为\u json方法。在此处查看有关如何执行此操作的详细信息只需在选择方法调用中使用SQL别名功能: w = World.select("foo as bar").first w.bar # returns value for foo w

假设我有一个桌子世界

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


有没有办法为这一个ActiveRecord查询别名字段名?不希望在整个应用程序中为字段添加别名。

您可以在您的世界模型中将
重写为\u json
方法。在此处查看有关如何执行此操作的详细信息

只需在
选择方法调用中使用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'))

我只是想评论一下。我用了化名,就像森喜朗在我发布这个问题之前概述的那样。它对我不起作用,因为我选择的别名和我关联到应用程序的宝石(回形针)冲突。示例:我试图将image\u file\u名称别名为image。但由于我认为回形针的作用,我不能使用图像别名。把它换成别的东西,比如img,效果不错。