Когда вы переходите к
www.myapp.com/existing_controller/no_action
, вы фактически называете show
действие existing_controller
с no_action
как id
.В режиме разработки вы получаете ошибку RecordNotFound.В производстве вы получите 404 страницы.
Если вы хотите настроить это поведение в режиме разработки и получить root права на страницу 404 (кстати, я не советую! Потому что это было сделано намеренно, чтобы помочь вам отладить), вы можете rescue_from
эту ошибку:
class ApplicationController < ActionController::Base
rescue_from ActiveRecord::RecordNotFound do
render_404
end
def render_404
respond_to do |type|
type.html { render :template => "shared/error_404/message", :layout => "application", :status => "404 Not Found" }
type.all { render :nothing => true, :status => "404 Not Found" }
end
end
end
Вне области действия. Один метод в этом примере может быть полезен при разработке 404 страниц: в отличие от стандартного public/404.html
вы можете использовать макет приложения с этим подходом.