2013-05-21 17 views
3

我有2個獨立軌道,無論對自己工作的罰款查詢:Rails的查詢或

@charts = Chart.where(:patient_id => @emailpatient.id) 

@charts = Chart.where(:patient_id => @sharepatient.id) 

,我想簡單地合併成一個「OR」查詢。我想:

@charts = Chart.where(:patient_id => @sharepatient.id OR :patient_id => @emailpatient.id) 

@charts = Chart.where("patient_id => @sharepatient.id OR patient_id => @emailpatient.id") 

和其他各種變化和不能得到它的工作。我在哪裏誤入歧途?

+0

您應該在控制檯中運行「rails server」的查詢。它在那裏說什麼? – Smar

+0

或者說,這是語法錯誤(是大寫還是可用作比較運算符?) – Smar

+0

@Smar第一行,他不會將條件寫入字符串=> out。然後他做,但不插入兩個值。 – oldergod

回答

6

你可以做

@charts = Chart.where(:patient_id => [@emailpatient.id, @sharepatient.id]) 
+1

這轉換爲WHERE patient_id IN(.. 。)'子句,這在邏輯上是等價的,但是具有爲NID工作的優勢。 – tadman

+0

謝謝,這是訣竅! – user2284821

2

你得到了它稍有不妥。

@charts = Chart.where("patient_id = ? OR patient_id = ?", @sharepatient.id, @emailpatient.id) 
+0

感謝您的工作! – user2284821