@H_502_1@我发现使用符号的位置:my_id =>没有使用老学校吗?是不同的.有人可以解释一下为什么吗
MyTable.where("my_id = ? ",nil).first SELECT `my_tables`.* FROM `my_tables` WHERE (my_id = NULL ) LIMIT 1
没有任何数据
MyTable.where(:my_id => nil).first SELECT `my_tables`.* FROM `my_tables` WHERE (`my_tables`.`my_id` IS NULL) LIMIT 1
获取my_id为空的数据.
在铁轨上使用最好的做法是什么?
我想我没有清楚我的问题.
在我的rails应用程序中,request参数为nil.
现有编码是MyTable.where(:my_id => params [:id])
在表中,有很多有my_id为空的记录.
因此,表中的第一个记录没有意识到.
首先,是的,这是表中不清楚的数据的问题.
解决方案1
if params[:id].present? MyTable.where(:my_id => params[:id]).first end
解决方案2
MyTable.where("my_id = ? ",nil).first
如你所知,如果我们(如果条件越来越多),我们的应用程序会变慢,它不会是功能性编程.
当我尝试解决方案2时,我感到惊讶,因为我期望它应该得到相同的结果.