gpt4 book ai didi

ruby-on-rails - 当用户记录不存在时,如何重定向到 404 页面?

转载 作者:数据小太阳 更新时间:2023-10-29 08:16:14 24 4
gpt4 key购买 nike

例如我有一个模型(用户模型)。当用户注册一个帐户时,会发送一封电子邮件提醒用户他/她的帐户已被激活。在这种情况下,如果管理员删除了用户记录,然后用户单击电子邮件中的链接查看他或她的个人资料,则会显示错误。所以,我想检查用户记录是否存在。如果不存在,用户应该被重定向到 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

那么,有解决办法吗?

谢谢。

最佳答案

这很简单,您只需要render rails 默认404 页面或您自定义的页面..

在你的应用程序 Controller 中,

class ApplicationController < ActionController::Base
# rest of your application controller code

def content_not_found
render file: "#{Rails.root}/public/404.html", layout: true, status: :not_found
end
end

然后,从您希望的任何 Controller 调用它。在你的情况下,

def show
if (@user = User.find_by_id(params[:id]).present?
# do your stuff
else
content_not_found
end
end

我不喜欢异常,我尽量避免它们;)

关于ruby-on-rails - 当用户记录不存在时,如何重定向到 404 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44253239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com