2014-09-22 107 views
1

我一直在類似於下面的日誌中看到錯誤。間歇性Ruby on Rails日誌(ActionView :: MissingTemplate)

任何人都可以提出爲什麼我可能間歇性地得到這樣的錯誤?這是一個緩存問題嗎?

每當我嘗試加載about-us頁面時,它都會完美加載,但每隔幾天在我的日誌中就會出現這樣的錯誤,但它並不侷限於單個頁面。有時它是首頁,有時是其他頁面。

Started GET "/about-us" for xxx.xxx.xxx.xxx at 2014-08-16 07:54:06 +0100 
Processing by PagesController#about as */*;q=0.6 
Geokit is using the domain: mydomain.com 
[1m[35mPage Load (0.2ms)[0m SELECT `pages`.* FROM `pages` WHERE `pages`.`name` = 'About Us' LIMIT 1 
Completed 500 Internal Server Error in 2ms 

ActionView::MissingTemplate (Missing template pages/about, application/about with {:handlers=>[:erb, :builder, :arb], :formats=>["*/*;q=0.6"], :locale=>[:en, :en]}. Searched in: 
* "/var/www/myapp/releases/201408150651/app/views" 
* "/var/lib/ruby-rvm/gems/ruby-1.9.2-p320/gems/activeadmin-0.3.2/app/views" 
* "/var/lib/ruby-rvm/gems/ruby-1.9.2-p320/gems/kaminari-0.12.4/app/views" 
* "/var/lib/ruby-rvm/gems/ruby-1.9.2-p320/gems/devise-1.4.7/app/views" 
): 

這個問題是相似的:Random rails ActionView::MissingTemplate errors所以這是發生在其他人,但沒有確定的答案有兩種。

回答

1

因爲有負荷的原因你不能阻止這個錯誤(比如你提到失蹤緩存,未知的請求格式等)

您可以嘗試限制的預定義的格式,如號碼:

get '/about-us' => 'controller#about', :format => /(?:|html|json)/ 

你也可以禁止這個異常。創建一個新的文件(例如exception_handler.rb)目錄配置/初始化這行添加到創建的文件:

ActionDispatch::ExceptionWrapper.rescue_responses.merge! 'ActionView::MissingTemplate' => :not_found 

希望它能幫助。

0

@ProblemSolvers是一個可能的解決方案。然而,我在application_controller.rb文件添加下面的方法,使這樣的錯誤會呈現一個404頁,而在屏幕上有錯誤消息未能

rescue_from ActionView::MissingTemplate, :with => :rescue_not_found 
protected 
def rescue_not_found 
    Rails.logger.warn "Redirect to 404, Error: ActionView::MissingTemplate" 
    redirect_to '/404' #or your 404 page 
end 

你可以在一個if語句包裹這段代碼,這樣的事情if Rails.env.production?假設env已設置,因此您的開發環境不會受到影響

相關問題