通常,跑出这个异常都用来标识请求的链接中包含了无效参数的情况。 检查相关网址的请求参数和相关数据库内容是否匹配(比如观察网址、数据库)。 同时也需要保证数据库中存在对应的数据。如果在代码中手动查找数据不存在,也有可能引起此异常。
最好的解决方法是用 rescue_from 捕获异常,并在页面上显示一个特定信息。下面是一个例子:
class SiteController < ApplicationController
rescue_from 'ActiveRecord::RecordNotFound' do |exception|
redirect_to root_url, :notice => 'Sorry, we could not find what you were looking for.'
end
def show
@professional = Professional.find(params[:id]) #会抛出异常
end
end
在上面的例子中,如果请求链接里的 id 对应的 database 中查询不到任何记录,将会跑出 ActiveRecord::RecordNotFound 异常,然后 rescue_from 会接收这个异常,并重定向到主页,同时显示一个提示信息:Sorry, we could not find what you were looking for.
上一篇:ActiveRecord::RecordNotFound(无法找到id为hamid的钱包)
下一篇:ActiveRecord::RecordNotFound: 找不到ID为62的Model,其所属的Model的ID为2。