2012-08-31 50 views
0

我有兩個型號查找一行給定對象

class User < ActiveRecord::Base 
    has_and_belongs_to_many :shops 
end 

class Shop < ActiveRecord::Base 
    has_and_belongs_to_many :users 
end 

我必須找到從加入與用戶對象關聯表users_shops行

任何人都可以請幫我這?

回答

0

UserShop

class UserShop < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :shop 
end 

創建一個新的模型。然後對一些user你可以做

user_shops = UserShop.where(:user_id => user.id) 

,你也可以直接從User

class User < ActiveRecord::Base 
    has_and_belongs_to_many :shops 
    has_many :user_shops 
end 

加關係UserShop和給一些user,你可以做

user_shops = user.user_shops 
+0

,但我使用has_and_belongs_to_many協會,負責管理在後臺連接表,你告訴我再添模型之間。請問User.shops << some_shop_object會將對象添加到UserShop? –

+0

'UserShop'只是Rails中的一個接口,與數據庫中已有的'user_shops'表相關。 User.shops << some_shop_object'的行爲與此模型的存在沒有區別。 – deefour

+0

模型的存在,目前您只能作爲API用於查詢'user_shops'表;而已。 – deefour