gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 07:58:53 25 4
gpt4 key购买 nike

我是 Ruby on Rails 的新手,我对 mysql 有基本的了解。我正在使用 MySQL 数据库。我的问题是——如何检查表中是否存在一行。我试过这段代码,但它不会直接进入 else block ,而不是 if block :

@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])

apparently that fixed the problem .我不确定为什么它会有所不同,内插字符串应该与 params 字典中的值相同。

关于mysql - 在 Ruby on Rails 中检查行是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22928038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com