2012-12-03 41 views
1

編輯:如何擺脫postgresql,但在使用mongohq時仍然在heroku上使用ActiveRecord :: RecordNotFound?

如何使用ActiveRecord :: RecordNotFound異常使Rails響應標準404?在許多地方建議的基本方法是修改config/application.rb而不是require "rails/all",而是檢查文件:railties/lib/rails/all.rb並挑選你想要/需要的。然而,如果你只是略去了關於active_record的部分,那麼你不能使用ActiveRecord :: RecordNotFound(顯然使用燈具也可能有問題,我不知道,因爲我不使用它們)。如何解決這個問題呢?

問題的舊的解釋不是很相關,但,我離開這裏以供參考和背景下面的意見..

老解釋: 所以這裏的交易。我們有一個使用MongoHQ作爲數據庫的Rails應用程序。本地的東西運行順利,沒有任何問題,但在生產和分段環境中,似乎Heroku堅持我們必須有postgresql數據庫和gems安裝/安裝。我試圖刪除插件和相關的配置變量,但它不會這樣做。這很麻煩,因爲現在免費的postgresql會導致問題,因爲如果我們啓動了dynos,它將很快耗盡連接(20個連接限制)。但是,當數據庫有0個表時,升級到更多生產級別的postgresql似乎是一件非常愚蠢的事情。其他人如何使用MongoHQ來管理這個?我似乎無法找到任何關於它的任何信息,儘管我認爲這是一個明顯的問題,即每個使用MongoHQ和Heroku的人都會面對這個問題。

+0

ActiveRecord是否仍然啓用? – willglynn

+0

這也是我的賭注(ActiveRecord或Rails中的某些東西)與Sinatra Ruby應用程序的原因,我默認運行時沒有使用postgres。 –

+0

我看到這個問題實際上可能是無效的。我認爲最初的問題與這個博客作者是一樣的(想要對404s使用ActiveRecord :: RecordNotFound例外):http://www.benjaminoakes.com/2011/09/15/activerecordconnectionnotestablished-in-rails-3- 1-on-heroku /因爲這造成了問題,所以我們配置了一些東西,這樣生產服務器和登臺服務器就需要rails/all,而在開發和測試環境中,我們只需要普通功能所需的功能,從而避免了對postgresql和數據庫的需求。 yml在本地設置。 – Timo

回答

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" 

學分的想法去先生。 Benjamin Oakes: http://www.benjaminoakes.com/2011/09/15/activerecordconnectionnotestablished-in-rails-3-1-on-heroku/

+0

很高興幫助。 :) –

相關問題