Можем ли мы пропустить цепочку вызовов rails при возврате статуса 404 в Rails Metal Controller? - PullRequest
3 голосов
/ 07 декабря 2011

Я пишу API для своего приложения rails и хочу вернуть код 404, например, если пользователь не найден.Но всякий раз, когда я возвращаю кодовые рельсы 404, он берет верх и в итоге выдает мне страницу с ошибкой 200 (ошибка маршрутизации).Есть ли способ вернуть 404 и пропустить цепочку вызовов?используя металлический контроллер ... я использую Rails 2.3.5.Спасибо

1 Ответ

1 голос
/ 09 августа 2015

Вы можете сделать что-то вроде этого и контролировать статус для использования. И дополнительно вы можете контролировать, какой макет / шаблон отображать 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
...