Rails - 使用OR而不是AND来查找两个字段?

时间:2013-05-22 18:43:56

标签: ruby-on-rails ruby

我熟悉在两个字段上进行查找:

user = User.find_by_username_and_email(params[:username], params[:email])

但是,我想检索一条记录,其中用户名或电子邮件等于同一字段。类似的东西:

user = User.find_by_username_or_email(params[:text])

我所知道的不起作用。这可能吗?任何帮助都是值得赞赏的。

2 个答案:

答案 0 :(得分:3)

您可以使用.where

user = User.where('username = ? or email = ?', params[:text], params[:text]).first

答案 1 :(得分:2)

为了扩展@xdazz的答案,您可以使用以下语法来允许使用相同的值搜索任意数量的字段,而无需重复该值:

user = User.where('username = :text or email = :text', :text => params[:text]).first

例如,当你来搜索邮政地址字段时非常有用。

2.2.1 Placeholder Conditions