Перенаправление при обнаружении исключения в методе в модели - PullRequest
3 голосов
/ 27 декабря 2010

Я использую Authlogic-connect для подключения различных поставщиков услуг.В user.rb есть метод

def complete_oauth_transaction
      token = token_class.new(oauth_token_and_secret)
      old_token = token_class.find_by_key_or_token(token.key, token.token)
      token = old_token if old_token

      if has_token?(oauth_provider)
        self.errors.add(:tokens, "you have already created an account using your #{token_class.service_name} account, so it")
      else
        self.access_tokens << token
      end
    end

Когда поставщик услуг уже добавлен, он выдает ошибку, как указано в has_token?метод и разрывы страниц.Мне нужно перенаправить приложение на ту же страницу и высветить ошибку.Как мне это сделать?Я переопределил метод в своем собственном user.rb, чтобы я мог изменить код.

1 Ответ

2 голосов
/ 27 декабря 2010

Хм, ну вы могли бы поставить метод, который обрабатывает ошибку has_token? бросает и говорит вашему контроллеру перенаправить эту точную ошибку. что-то вроде этого в вашем контроллере:

rescue_from OauthError::RecordNotFound, :with => :deny_access тогда вы можете поставить



def deny_access
  redirect_to your_view_path, :alert => "Too bad sucker" #some flash message
end

Или вы можете сделать что-то подобное в контроллере:


if complete_oauth_transaction.errors.present?
  redirect_to your_view_path
else
  # continue on with the normal code here
end

Так вы можете обрабатывать ошибки в общем. Ваш точный код будет отличаться, так как это все, что нам нужно.

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