如果变量跟随有一个值,我想在前面加上一个'/',否则如果它是nil,则保持为nil
l2, follow = params[:all].split('/', 2)
follow = follow.nil? ? follow : "/#{follow}"
redirect_to "#{my_path(locale: locale, l2: l2)}#{rest}"
这里的参数[:all]可能是一个URL路径,如
esp
esp/article/1
esp/article/1/author/1
编辑: 我的方法有效,但想知道是否有更好的方法
follow.nil? ? follow : "/#{follow}"
由于Ruby
具有 String#prepend 方法,因此可以按以下方式重构代码:
follow && follow.prepend("/")
或者由于Ruby 2.3
具有安全导航功能,因此可以更简洁地表达:
follow&.prepend("/")