0

我正在使用 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_path 在配置中

  root to: 'home#new'

执行了rescue,但是redirect_to 不起作用,它返回到与main 方法相同的视图。注意:我在许多帖子中读到将 return 修复它,但它没有

4

1 回答 1

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

其实你根本不需要return,除非方法中这个语句后面有什么东西。这是因为在 Ruby 中,最后一条语句是隐式返回的。

于 2016-12-05T19:43:58.013 回答