微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql – 在Ruby on Rails中检查行是否存在

我是Ruby on Rails的新手,我对MysqL有基本的了解.我正在使用MySQL db.我的问题是 – 如何检查表中是否存在行.我已经尝试过这段代码,但它并没有直接进入else块,而不是if块:

@tasks = User.find_by("user_name = ? AND password = ?", params[:user_name], params[:password])
if @tasks
  redirect_to action: 'index', status: 302
else
  redirect_to action: 'detail', status: 302
end

解决方法:

如果要使用Ruby on Rails查找是否存在具有给定名称密码用户,则可以执行以下操作:

User.where(user_name: params[:user_name], password: params[:password]).exists?

RailsGuides: Existence of Objects.

原因问题的原因?

所以这就是原始海报最初提交的代码

User.find_by("user_name = ? AND password = ?", "#{params[:user_name]}", "#{params[:password]}")

删除了字符串插值,因为它是不必要的

User.find_by("user_name = ? AND password = ?", params[:user_name], params[:password])

虽然我不确定它为什么会有所不同,插值字符串应该与params字典中的值相同.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐