簡體   English   中英

Rails has_many復雜查詢

[英]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:

如何在Rails中使用動態綁定執行原始更新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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM