Вы можете сделать что-то вроде этого и контролировать статус для использования. И дополнительно вы можете контролировать, какой макет / шаблон отображать 404 пользователю. Это должно позволить вам взять на себя ответственность за то, какой статус использовать, и не быть сильно вооруженным, чтобы использовать то, что, по вашему мнению, вам нужно.
#app/controllers/some_controller.rb
class SomeController < ApplicationController
def index
@user = User.find_by(id: params[:user_id])
return custom_404_page unless @user
end
end
#app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
def custom_404_page
render :template => 'layouts/custom_404_page', status: 404
end
end