我试图让“选择为”查询语句起作用,但不断收到错误消息,并且不确定为什么它不起作用。根据 API 文档,格式是正确的。
User.select("firstname as fname")
结果是:
User Load (1.7ms) SELECT firstname as fname FROM "users"
=> #<ActiveRecord::Relation [#<User id: nil>, #<User id: nil>]
但是,如果我使用:
User.select(:firstname)
我得到:
User Load (2.8ms) SELECT "users"."firstname" FROM "users"
=> #<ActiveRecord::Relation [#<User id: nil, firstname: "John">, #<User id: nil, firstname: "Brian">,
所以我可以从查询中看到为什么它没有返回结果,但我不明白为什么它会创建不正确的查询。 (我需要使用 select as on 的实际查询比这个查询更复杂,但我试图使用更简单的查询来试图找出它无法正常工作的原因。
我需要使用 select 作为查询的原因是因为我有来自两个非常不同的表的两个单独的对象,我需要将它们连接在一起并更改其中一个列名,以便我可以按该列进行排序。我不确定在组合对象之前是否有更简单的方法来更改名称。
谢谢!
最佳答案
您可以使用 alias_attribute :firstname, :fname
在模型中然后使用 User.select(:fname)
在 Controller 中也是如此。
关于ruby-on-rails - Ruby on Rails Select As 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29535124/