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



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

最新更新