перезаписать redirect_to в action_controller / metal / redirecting.rb - PullRequest
1 голос
/ 07 февраля 2012

Мне нужно изменить метод redirect_to по умолчанию в actionpack / lib / action_controller / metal / redirecting.rb

def redirect_to(options = {}, response_status = {}) #:doc:
      ....
      self.location      = _compute_redirect_to_location(options)
      # add customized code here to modify self.location
      ......
end

Я не уверен, что это правильный подход.я сделал следующее:

  • скопируйте файл redirecting.rb в мой проект rails в "lib / rails_ext / action_controller / redirecting.rb"
  • внес изменение в метод redirect_to ()
  • добавить строку: требуется 'rails_ext / action_controller / redirecting' в application.rb

это сработало.однако я получаю предупреждение
rails_ext / action_controller / redirecting.rb: 3: warning: уже инициализированная константа DEFAULT_MESSAGE

дополнительно, я думаю, что должен быть лучший способ сделать это.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2012

Я обычно перезаписываю эту функцию в контроллере приложения.

def redirect_to(*args)
 # your code
end

аналогичный артикул: http://jkfill.com/2011/05/13/log-which-line-called-redirect_to/

0 голосов
/ 07 февраля 2012

Правильный метод в Ruby - переопределить функцию. Вы можете увидеть пример здесь (глава «Изменение поведения класса»).

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