1

我熟悉在两个领域进行查找:

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

但是,我想检索一条用户名或电子邮件等于同一字段的记录。就像是:

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

我知道这是行不通的。这可能吗?任何帮助表示赞赏。

4

2 回答 2

7

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

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

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

2.2.1 占位符条件

于 2013-05-22T19:07:02.903 回答
5

你可以使用.where

user = User.where('username = ? or email = ?', params[:text], params[:text]).first
于 2013-05-22T18:45:45.820 回答