2013-09-24 5 views
0

Я использую ассоциации, чтобы объединить несколько моделей вместе и выбрать их в одном запросе, однако, когда две модели разделяют имя столбца, используется только вторая в инструкции select. Есть ли способ использовать полное имя, то есть префикс с именем таблицы, так что хэш атрибутов может содержать оба значения столбца?Имена атрибутов ActiveRecord с именем таблицы

Примеры:

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"]]... 

ответ

1

Попробуйте это:

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

+1

Herp .. Почему я не подумал об этом? приветствия, примет через 3 минуты – Slicedpan

Смежные вопросы