redirect_to не работает в блоке восстановления
Я использую Octokit для входа в систему.
helper_method :user
def show
end
def user
client = Octokit::Client.new(access_token: session[:access_token])
begin
@user = client.user
rescue => e
redirect_to root_path
return
end
end
Корневой_путь находится в конфиге
root to: 'home#new'
Спасение выполнено, однако redirect_to не работает, он возвращается к тому же представлению, что и основной метод. Примечание: я читал во многих постах, что возвращение исправить это, но это не так
1 ответ
Ваш код вызывает метод redirect_to, но впоследствии возвращается блок восстановления nil
, Вместо этого объедините перенаправление и вернитесь в один оператор:
client = Octokit::Client.new(access_token: session[:access_token])
begin
@user = client.user
rescue => e
redirect_to root_path and return
end
На самом деле, вам вообще не нужен возврат, если в методе нет чего-то после этого оператора. Это потому, что в Ruby последний оператор неявно возвращается.