我有以下設置,我想確保我的品牌模型中的所有品牌屬於我的用戶模型中的所有用戶。我還想確保一旦創建了一個品牌,並且它屬於所有用戶,它也將屬於註冊該品牌的未來用戶。我應該如何讓我的模型的實例屬於我的用戶模型中的所有用戶?
品牌型號
has_many :brand_users
has_many :users, :through => :brand_users
after_create :associate_with_all_users
def associate_with_all_users
User.find(:all).each do |user|
users << user
end
save
end
BrandUser模型
belongs_to :brand
belongs_to :user
用戶模型
has_many :brand_users
has_many :brands, :through => :brand_users
當我嘗試在控制檯以下,這表明目前的最後一個品牌實例只屬於一個用戶而不是兩個(t目前有2個用戶存在)。
>> User.all.count
=> 2
>>BrandUser.last.user_id
=>1 #Should not belong to just the one user but both
只是爲了確認,BrandUser.count == 1?你也應該能夠做self.users = User.all而不是循環。 –
不,BrandUser.count == 4(現在,雖然會漲到很多,比如200)。 – Simpleton
您目前有多少品牌和用戶? –