例如,我有一个模型(用户模型)。当用户注册一个帐户时,会发送一封电子邮件提醒用户他/她的帐户已被激活。在这种情况下,如果管理员删除用户记录,然后用户单击电子邮件中的链接查看他/她的配置文件,它会显示错误。所以,我想检查用户记录是否存在。如果不存在,404错误页面404错误页面
我已经尝试了下面的代码,但它不工作。this is the following example that i have tried
def show
@user = User.find(params[:id]) or raise ActionController::RoutingError.new('Not Found')
end
那么,有没有解决办法呢?
谢谢。
5条答案
按热度按时间mtb9vblg1#
这很简单,你只需要
render
轨道默认404
页面或您自定义的一个。在应用程序控制器中,
然后,从任何控制器调用它,你的情况下,
我不喜欢例外,我尽量避免它们;)
t9aqgxwy2#
请尝试以下代码:
ebdffaop3#
试试这个:
7kqas0il4#
如果您希望在应用程序级别...
在应用程序控制器中,添加以下内容...
在用户控制器中,您只需说:
如果您只想在单个控制器级别执行此操作,
在用户控制器中,执行以下操作
btqmn9zl5#
您还可以利用
导轨3及以上
如果您想使用应用程序控制器,那么您可以尝试在应用程序控制器文件中写入以下两点:
1)创建渲染_404操作:
2)
rescue_from ActiveRecord::RecordNotFound, :with => :render_404 action
当你使用“显示”动作时
如果未找到记录(未找到参数为[:id]的用户),则会自动出现404。