2012-01-23 34 views
1

我的User表通過user_company表連接到Company。現在我想檢索用戶所屬的公司名稱。請你可以建議我應該使用的查詢嗎?用戶關係加入活動記錄查詢

用戶
has_many :companies, :through => :user_companies

公司
has_many :users, :through => :user_companies

用戶不直接屬於公司。

user.company.name提供了一個錯誤。我想找出用戶所屬的公司名稱。

回答

1

由於用戶有多個公司,因此是user.companies。要獲得名字,你可以做例如user.companies.map(&:name)

+0

嘿,感謝讓所有的名字。你解決了我的問題。 – Metal

0

@user.companies將爲您提供用戶所關聯的所有公司的陣列。
現在,您可以簡單地遍歷數組並獲取每個公司的公司名稱。

company_names = [] 
@user.companies.each {|entry| company_names << entry.name} 

這是當你沒有在user_companies表中的公司名稱屬性。
如果你有這樣的說法,你可以簡單地通過

UserCompany.where(:select=>"name", :user_id=> @user)