Ruby Rails使用OR查询WHERE子句

Ruby Rails使用OR查询WHERE子句,ruby,ruby-on-rails-3.2,boolean,where-clause,Ruby,Ruby On Rails 3.2,Boolean,Where Clause,我有两个单独的RAILS查询,它们各自都可以正常工作: @charts = Chart.where(:patient_id => @emailpatient.id) @charts = Chart.where(:patient_id => @sharepatient.id) 我想简单地组合成一个“或”查询。我试过: @charts = Chart.where(:patient_id => @sharepatient.id OR :patient_id => @emai

我有两个单独的RAILS查询,它们各自都可以正常工作:

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

@charts = Chart.where(:patient_id => @sharepatient.id)
我想简单地组合成一个“或”查询。我试过:

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

和其他各种变化,无法让它工作。我在哪里误入歧途?

你可以这样做

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

你搞错了

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

您应该在运行“rails服务器”的控制台中获得查询。这里说的是什么?或者更确切地说,这是语法错误(是大写还是可用作比较运算符?)@Smar第一行,他没有将条件写入字符串=>out。然后他会插入但不会插入这两个值。
@charts=Chart.where(:conditions=>[“patient\u id=>?或patient\u id=>?”,@sharespatient.id,@emailpatient.id])
这将转换为
where patient\u id IN(…)
子句,这在逻辑上是等效的,但具有为N个id工作的优点。
@charts = Chart.where("patient_id = ?  OR patient_id = ?", @sharepatient.id, @emailpatient.id)