0

我正在使用关联将多个模型连接在一起并在单个查询中选择它们,但是当其中两个模型共享一个列名时,仅使用 select 语句中的第二个模型。有没有办法使用完全限定的名称,即以表名为前缀,以便属性哈希可以包含两个列值?

例子:

Class User < ActiveRecord::Base
  belongs_to :role
end

#This query will only allow me to see the name of the role
User.joins(:role).select('users.name', 'role.name')

#Using the raw connection removes the table name from the resultset also
User.connection.select("users.name, roles.name FROM users JOIN roles ON users.role_id = roles.id")

=> #<ActiveRecord::Result:0x00000000000000 @columns=["name", "name"], @rows=[["some_user", "admin"]]...
4

1 回答 1

1

尝试这个:

User.joins(:role).select('users.name as user_name, role.name as role_name')

于 2013-09-24T11:04:21.043 回答