我試圖檢查現有InvitationSearch記錄具有完全相同的關聯之前創建一個新的(以避免有2記錄是相同的),但我可以不知道該怎麼做。查找具有has_many確切集合的記錄:通過關聯ID
class InvitationSearch < ActiveRecord::Base
has_many :invitations
has_many :brands, :through => :invitation_search_brands
has_many :invitation_search_brands
has_many :categories, :through => :invitation_search_categories
has_many :invitation_search_categories
has_many :sizes, :through => :invitation_search_sizes
has_many :invitation_search_sizes
end
class Invitation < ActiveRecord::Base
belongs_to :invitation_search
end
class InvitationSearchSize < ActiveRecord::Base
belongs_to :invitation_search
belongs_to :size
end
class InvitationSearchBrand < ActiveRecord::Base
belongs_to :invitation_search
belongs_to :brand
end
class InvitationSearchCategory < ActiveRecord::Base
belongs_to :invitation_search
belongs_to :category
end
在我invitation_searches_controller創建方法我想創建一個新的InvitationSearch前檢查匹配。
在我的參數中,我得到了性別,brand_ids,category_ids和size_ids,我只關心具有EXACT性別和相同的關聯id集合的記錄,不多不少。
我知道我可以做類似下面的事情,但是這會返回所有包含這些品牌的記錄,而不是確切的集合。另外,我需要對每個協會執行操作,看起來這樣會比較單調乏味。
InvitationSearch.includes(:brands).where(:brands => {:id => params[:invitation_search][:brand_ids]})
在此先感謝!
謝謝格式化邁克爾! – Heidi