I18n.locale = request.compatible_language_from(I18n.available_locales) || I18n.default_locale
+ logger.info "Selected locale #{I18n.locale} from #{request.user_preferred_languages.inspect}"
+
response.headers['Content-Language'] = I18n.locale.to_s
end
OSM::Timer.timeout(WEB_TIMEOUT) do
yield
end
- rescue ActionView::TemplateError => ex
- if ex.original_exception.is_a?(Timeout::Error)
+ rescue ActionView::Template::Error => ex
+ ex = ex.original_exception
+
+ if ex.is_a?(ActiveRecord::StatementInvalid) and ex.message =~ /^Timeout::Error/
+ ex = Timeout::Error.new
+ end
+
+ if ex.is_a?(Timeout::Error)
render :action => "timeout"
else
raise