[英]Rails has_many complicated query
我不太確定該如何措辭,但我會試一試。
基本上,我有兩個模型:消息和事件。
消息belongs_to事件和事件has_many消息。
當我打這樣的電話:
Event.first.messages
它產生以下輸出:
SELECT "messages".* FROM "messages" WHERE "messages"."event_id" = 1
我想做的是保持兩者之間的關聯,但是在has_many方程中添加另一列,以便生成的SQL類似於:
SELECT "messages".* FROM "messages" WHERE "messages"."event_id" = 1 OR "messages"."type_id" = 4
Message和Event表都包含type_id列。
這可能嗎?
您不能進行純ActiveRecord或查詢
解決此問題的其他方法
使用SQL字符串作為where參數:
Message.where("event_id = ? or type_id = ?", Event.first.id, 4)
進行2個查詢,然后添加它們:
event_messages = Event.first.messages
type_messages = Message.where(:type_id => 4)
all_messages = event_messages + type_messages
原始SQL:
是的,可以通過使用
Event.first.messages.where(:type_id => 4)
試試吧
嘗試這個
Event.first.find(:all, :conditions => ["where type_id = ? or event_id = ?", 4, 1])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.