Par*_*nha 2 ruby activerecord redirect ruby-on-rails url-redirection
例如,我有一个模型(用户模型).当用户注册帐户时,会发送一封电子邮件,提醒用户他/她的帐户已被激活.在这种情况下,如果管理员删除用户记录,然后用户单击电子邮件中的链接以查看他或她的个人资料,则会显示错误.所以,我想检查用户记录是否存在.如果它不存在,则应将用户重定向到404页面.
我已经尝试了下面的代码,但它无法正常工作.这是我尝试过的以下示例
def show
@user = User.find(params[:id]) or raise ActionController::RoutingError.new('Not Found')
end
Run Code Online (Sandbox Code Playgroud)
那么,有解决方案吗?
谢谢.
这很简单,你只需要render导航默认404页面或你的自定义页面..
在您的应用程序控制器
def content_not_found
render file: "#{Rails.root}/public/404", layout: true, status: :not_found
end
Run Code Online (Sandbox Code Playgroud)
然后,从您希望的任何控制器中调用它.在你的情况下,
def show
if (@user = User.find_by_id(params[:id]).present?
# do your stuff
else
content_not_found
end
end
Run Code Online (Sandbox Code Playgroud)
我不喜欢异常,我尽可能地避免它们;)