0
class Event
has_many :keywords, :through => :event_keywords
end
class User
has_many :keywords, :through => :user_keywords
end
我有一個計算基於其與特定用戶共享的關鍵字事件的關聯用戶的方法的Active Record查詢:眼下的Rails:優化的,而不是循環
User.rb
def calculate_event_relevance(event_id)
event_keywords = event.keywords
event_keywords.each do |kw|
user_keyword_match = self.keywords.where(id: kw.id).first
if user_keyword_match
## do some stuff
end
end
end
,我通過循環每個關鍵字。在循環中,我會查詢用戶是否也有該關鍵字。
有沒有辦法改變一個單一的查詢(並保存到event_keywords),只返回event.keywords
,用戶也有,所以我不需要遍歷所有的查詢?
是否有查詢可以查找用戶和事件共有的關鍵字?
謝謝@ davidhu2000!這比我想象的要容易得多:) –