Вызывать after_action только для определенных путей кода - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть контроллер Rails, который выглядит как код ниже.After_action запускается после метода external_click.Но я недавно добавил еще один путь к коду на случай, если реферер недействителен, и теперь я вижу, что не хочу, чтобы after_action запускалось для этого пути.Есть ли способ предотвратить запуск after_action в предложении else.

class ClicksController < ApplicationController
  after_action :track_click, only: :external_click

  def external_click
    if params[:url].present?
      if valid_referer?(request.referer)
        redirect_to processed_url
      else
        redirect_to product_show_path(Product.find(params[:product_id]))
      end
    else
      not_found
    end
  end

1 Ответ

0 голосов
/ 21 декабря 2018

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

after_action :track_click, only: :external_click, if: -> { params[:url].present? }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...