Регистрировать или уведомлять каждый раз, когда происходит перенаправление / конкретный URL-адрес, используемый на рельсах

avatar
Manjari S
1 июля 2021 в 17:54
23
1
0

У меня есть старая ссылка в формате /view/id, которую я перенаправил на view/category/id.

Я хочу регистрировать или получать уведомления каждый раз, когда происходит это перенаправление, чтобы увидеть, смогу ли я найти оставшийся код, где используется старая ссылка.

Можно ли это сделать?

Источник

Ответы (1)

avatar
Lam Phan
2 июля 2021 в 04:38
0

вы можете добавить пользовательский ActiveSupport::Subscriber как показано ниже

# app/subscribers/specify_redirected_subscriber
class SpecifyRedirectedSubscriber < ActiveSupport::Subscriber
  attach_to :action_controller

  SPECIFY_REDIRECTED = [/your-domain\/view\/category\/\d/] # view/category/id

  def redirect_to(event)
    redirected_link = event.payload[:location]
    
    matched = SPECIFY_REDIRECTED.filter { |specify_link| 
     specify_link.match(redirected_link) 
    }
    
    unless matched.blank?
      # log what you want
      Rails.logger.info { "Specify Redirected To #{redirected_link}" }
    end
  end
end

тогда вы можете добавить этого подписчика внизу приложения

class ApplicationController < ActionController::Base
 # ...
end
SpecifyRedirectedSubscriber