Kunnen we de rails-belketen overslaan wanneer een 404-status wordt geretourneerd in Rails Metal Controller?

Ik schrijf een API voor mijn rails-app en wil de 404-code retourneren, bijvoorbeeld als de gebruiker niet wordt gevonden. Maar telkens als ik terugkom, neemt de 404-coderail het over en krijg ik een foutpagina met een 200-status (routeringsfout). Is er een manier om de 404 terug te sturen en de belketen over te slaan? met behulp van metalen controller ... Ik gebruik Rails 2.3.5. Bedankt

3

1 antwoord

U kunt zoiets doen en de status bepalen die u wilt gebruiken. En bovendien kunt u bepalen welke lay-out/sjabloon de 404 voor de gebruiker moet weergeven. Dit zou je de leiding moeten laten nemen over welke status je moet gebruiken en niet sterk zijn om te gebruiken wat je denkt dat je nodig hebt.

#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
1
toegevoegd