Ruby / Rails - 如何编写这种语法?

时间:2013-03-23 20:57:25

标签: ruby-on-rails ruby doorkeeper

我正在使用门卫,如果我以任何方式修改current_user,就像把它放在条件语句中使用,除非或如果,门卫不会捡起它。是否有一种简单的方法可以保留current_user ||并适合包含会话存储的下两行并重定向到双管右侧的一行中工作?

resource_owner_authenticator do

  current_user ||

  session[:after_login_redirect_to] = request.fullpath
  redirect_to('/connect')   

end

2 个答案:

答案 0 :(得分:6)

无需将其作为单行 - 使用开始块:

resource_owner_authenticator do
  current_user || begin
    session[:after_login_redirect_to] = request.fullpath
    redirect_to('/connect')   
  end
end

答案 1 :(得分:1)

你当然可以用多行代码表达一个表达式,只需将它们用括号括起来即可。

current_user || (session[:after_login_redirect_to] = request.fullpath; redirect_to('/connect'))