rails路径中的可选参数

时间:2016-10-27 14:35:50

标签: ruby-on-rails ruby

我有条件:

if(request.fullpath != '/')
  redirect_to login_path(:redirect_url => view_context.b64_encode(request.fullpath)) unless current_user
else
  redirect_to login_path unless current_user
end

如果请求不是根网址,那么基本上只说添加:redirect_url参数。然而,这意味着重复重定向,除非代码......是否有可能使该参数像三元一样可选?

2 个答案:

答案 0 :(得分:1)

我认为这应该有效(使用三元运算符):

unless current_user
  redirect_to login_path(request.fullpath == '/' ? {} : { :redirect_url => view_context.b64_encode(request.fullpath) })
end

这也应该有效:

unless current_user
  redirect_to login_path(({ :redirect_url => view_context.b64_encode(request.fullpath) } if request.fullpath != '/'))
end

答案 1 :(得分:0)

这是我提出的最好的:redirect_to login_path(request.fullpath != '/' ? {:redirect_url => view_context.b64_encode(request.fullpath)} : {}) unless current_user