Rails使用OR查询WHERE子句

use*_*821 3 ruby boolean where-clause ruby-on-rails-3.2

我有两个单独的RAILS查询,它们都可以自行运行:

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

@charts = Chart.where(:patient_id => @sharepatient.id)
Run Code Online (Sandbox Code Playgroud)

我想简单地组合成一个"OR"查询.我试过了:

@charts = Chart.where(:patient_id => @sharepatient.id OR :patient_id => @emailpatient.id)
Run Code Online (Sandbox Code Playgroud)

@charts = Chart.where("patient_id => @sharepatient.id OR patient_id => @emailpatient.id")
Run Code Online (Sandbox Code Playgroud)

和其他各种变化,不能让它工作.我哪里误入歧途?

old*_*god 6

你可以做

@charts = Chart.where(:patient_id => [@emailpatient.id, @sharepatient.id])
Run Code Online (Sandbox Code Playgroud)


Ner*_*rve 5

你有点错了。

@charts = Chart.where("patient_id = ?  OR patient_id = ?", @sharepatient.id, @emailpatient.id)
Run Code Online (Sandbox Code Playgroud)