如何用OR而不是AND链接作用域查询?

如何用OR而不是AND链接作用域查询?

我正在使用Rails3,ActiveRecord


只是想知道如何用OR语句而不是AND链接作用域。


例如


Person.where(:name => "John").where(:lastname => "Smith")

通常返回:


name = 'John' AND lastname = 'Smith'

但我想:


`name = 'John' OR lastname = 'Smith'


跃然一笑
浏览 630回答 4
4回答

偶然的你

你会做Person.where('name=? OR lastname=?', 'John', 'Smith')目前,新的AR3语法不提供任何其他OR支持(即不使用某些3rd party gem)。

温温酱

根据此拉取请求,Rails 5现在支持以下用于链接查询的语法:Post.where(id: 1).or(Post.where(id: 2))通过这个gem还将功能移植到Rails 4.2中。

杨魅力

使用ARelt = Person.arel_tableresults = Person.where(  t[:name].eq("John").  or(t[:lastname].eq("Smith")))

互换的青春

Rails4的更新不需要第三方宝石a = Person.where(name: "John") # or any scope b = Person.where(lastname: "Smith") # or any scope Person.where([a, b].map{|s| s.arel.constraints.reduce(:and) }.reduce(:or))\  .tap {|sc| sc.bind_values = [a, b].map(&:bind_values) }旧答案不需要第三方宝石Person.where(    Person.where(:name => "John").where(:lastname => "Smith")      .where_values.reduce(:or))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby