我熟悉在两个字段上进行查找:
user = User.find_by_username_and_email(params[:username], params[:email])
但是,我想检索一条记录,其中用户名或电子邮件等于同一字段。类似的东西:
user = User.find_by_username_or_email(params[:text])
我所知道的不起作用。这可能吗?任何帮助都是值得赞赏的。
答案 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
例如,当你来搜索邮政地址字段时非常有用。