1

编辑:

如何使用 ActiveRecord::RecordNotFound 异常让 Rails 以标准 404 响应?在许多地方建议的基本方法是将其修改config/application.rb为 not require "rails/all",而是检查文件:railties/lib/rails/all.rb并选择您想要/需要的内容。但是,如果你只是省略了关于 active_record 的部分,那么你就不能使用 ActiveRecord::RecordNotFound (显然使用固定装置也可能有问题,我不知道,因为我不使用它们)。如何解决这个问题呢?

该问题的旧解释不是很相关,但是,我将其留在这里以供参考和以下评论的上下文..

旧的解释:所以这是交易。我们有一个使用 MongoHQ 作为数据库的 Rails 应用程序。在本地,事情运行顺利,没有任何问题,但在生产和登台环境中,Heroku 似乎坚持我们必须设置/安装 postgresql 数据库和 gems。我试图删除插件和相关的配置变量,但它不会这样做。这很烦人,因为现在免费的 postgresql 会导致问题,因为如果我们启动 dynos,它将很快耗尽连接(20 个连接限制)。然而,当数据库有 0 个表时,升级到更高级别的 postgresql 似乎是一件非常愚蠢的事情。使用 MongoHQ 的其他人是如何管理这个的?我可以'

4

1 回答 1

0

关键的想法是我们仍然可以require "activer_record",但是让我们省略相应的 railtie。这就是我最终放入我的config/application.rb

require "rails"
frameworks = %w(action_controller action_mailer active_resource rails/test_unit)
frameworks.each { |framework| require "#{framework}/railtie" }

# For errors like ActiveRecord::RecordNotFound
require "active_record"

这个想法的功劳归于先生。本杰明奥克斯: http ://www.benjaminoakes.com/2011/09/15/activerecordconnectionnotestablished-in-rails-3-1-on-heroku/

于 2012-12-07T14:41:18.957 回答