如果字符串存在,则在前面加上一个字符,否则不存在

Prepend a character if string exists otherwise not

如果变量 follow 有一个值,我想在前面加上一个 '/' 否则如果它是 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}"

由于RubyString#prepend方法,代码可以重构如下:

follow && follow.prepend("/")

或者因为Ruby 2.3有安全导航,所以可以更简洁的表达:

follow&.prepend("/")