1

我在我的 Rails 3.2.13 应用程序中使用config.exceptions_app = self.routes了 config/application.rb 中的自定义错误页面,我的逻辑在 errors_controller 中,视图在 app/views/errors 中。我使用的是 Rails 3 版本的路由过滤器 gem,它负责路由。我删除了 gem,因为它不适用于 Rails 4。

我使用本机 Rails 功能重写了路由逻辑,并在 Rails 4 中重写了应用程序。使用本机 Rails 功能破坏了我对自定义错误页面的逻辑。您可以阅读我试图纠正Ruby on Rails 3.2.13 - Getting Error With Custom Error Pages Using I18n 上的逻辑的详细信息。我已经对此进行了许多网络搜索,但找不到任何有关此的信息。我发现了多种解决方案,据称这些解决方案适用于尚未本地化的网站。但是,我需要一个用于本地化网站。

如果可能,我现在决定尝试通过将错误页面移回公用文件夹来完成此操作。我可以将我的 html.erb 文件从 app/views/errors 移动到公共文件夹,然后页面在语言环境文件中找到我的翻译吗?我再次进行了许多网络搜索,到目前为止,我还没有找到任何使用 I18n 的 Rails 4 应用程序的自定义错误页面示例。Rails 指南中没有关于公共文件夹或其他任何地方的错误页面的内容。

任何帮助,将不胜感激。

4

1 回答 1

1

在过去几天的搜索之后,我决定尝试一些我在 Stack Overflow 上的帖子中读到的东西。关于如何将 i18n 用于 Rails 3 中的错误页面?在 Rails 2.3 中引入。解决方案的一部分是为每个可用的语言环境(例如 404.en.html)创建一个 html 文件。404.fr.html 等。它包括在 lib/tasks 中添加一个文件以及其他我想做的事情。

我决定继续为每个语言环境创建 html 错误文件,而不做其他推荐的事情。逻辑工作得很好。

似乎config.exceptions_app = self.routes已被弃用。我不能正式这么说,因为我从未找到任何说明这一点的文件。我成功更新了所有本地化的 Rails 应用程序。

更新 2013 年 11 月 8 日上午 9:35 CST

我在其他博客文章中发布了关于我的问题的问题,他们在其中讨论了 Rails 3 中的自定义错误页面。在其中一篇文章中,博客文章作者确认在 Rails 4 中已弃用 exceptions_app 的访问器。谢天谢地,自定义错误页面流程已被简化在 Rails 4 中。

于 2013-11-07T18:21:38.733 回答