我想检查设置表中是否存在id为2的条目,如果不存在,我想要将用户重定向到setting_new_path。我的代码如下所示:
def index
if Setting.find(2).present?
@patients = Patient.all
@patients_drucken = Patient.drucken
@anrede = Setting.find(1).anrede
respond_to do |format|
format.html # index.html.erb
format.json { render json: @patients }
end
else
redirect_to new_setting_path
end
end
但不知怎的,我得到了错误:
Couldn't find Setting with id=2
我不明白为什么这会显示为错误!我的意思是在它没有定义的情况下,重定向到new_setting_path!是什么让我错了?
答案 0 :(得分:6)
使用exists?检查记录是否存在:
if Setting.exists?(2)
答案 1 :(得分:1)
#find
将抛出异常。
您应该使用#where
和#any?
代替:
if Setting.where( id: 2 ).any?
答案 2 :(得分:0)
这意味着您在“设置”表中没有id = 2的任何记录。只需检查一次。