我在我的Rails 3.2.13应用程序中使用{/ 1}}中的自定义错误页面,其中包含我在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移动到公共文件夹,页面在locale文件中查找我的翻译吗?我再次进行了许多网络搜索,截至目前,我还没有找到使用I18n的Rails 4应用程序的自定义错误页面的任何示例。 Rails指南中没有关于公用文件夹或其他任何地方的错误页面的信息。
任何帮助都将不胜感激。
答案 0 :(得分:1)
在搜索过去几天之后,我决定尝试在Stack Overflow上的帖子中阅读的内容。在How can I use i18n for my error pages in Rails 3?上提出的解决方案在Rails 2.3中引入。解决方案的一部分是为每个可用的语言环境(如404.en.html)创建一个html文件。 404.fr.html等。它包括在lib / tasks中添加一个文件,以及其他比我想做的更多的东西。
我决定继续为每个语言环境创建html错误文件,而不做其他建议的事情。逻辑非常有效。
似乎已弃用config.exceptions_app = self.routes
。我不能正式说这个,因为我从来没有找到任何文件说明这一点。我成功更新了所有本地化的Rails应用程序。
更新11/8/2013 9:35 am CST
我在其他博客文章中发布了有关我的问题的问题,他们在Rails 3中讨论了自定义错误页面。其中一篇博客文章作者确认在Rails 4中不推荐使用exceptions_app的访问者。感谢自定义错误页面进程已经在Rails 4中进行了简化。