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

我是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字典中的值相同.
沃梦达教程
本文标题为:mysql – 在Ruby on Rails中检查行是否存在


基础教程推荐
猜你喜欢
- 详解swift中xcworkspace多项目管理 2023-07-05
- 如何将mysql数据库文件连接到Rails应用程序上的本地ruby 2023-09-21
- R语言向量下标和子集的使用 2022-12-10
- R语言的一个加法函数使用介绍 2022-11-14
- 解决R语言中install_github中无法安装遇到的问题 2022-11-26
- ruby – 如何使用Nginx,Passenger,Sinatra创建多个位置 2023-09-20
- R语言入门使用RStudio制作包含Rcpp代码的R包 2022-12-05
- R语言因子型数值转数值型的操作 2022-11-23
- 深入探究Golang中log标准库的使用 2023-07-25
- 汇编语言:比较指令、跳转指令、JCC的使用 2023-07-06