如果字符串存在则添加一个字符,否则不存在

时间:2018-08-11 06:38:36

标签: ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-5

如果要跟随的变量具有值,我想在其前添加一个'/';否则,如果它为nil,则将其保留为nil

    l2, follow = params[:all].split('/', 2)
    follow     = follow.nil? ? follow : "/#{follow}"
    redirect_to "#{my_path(locale: locale, l2: l2)}#{rest}"

params [:all]这里可能是

这样的网址路径
esp
esp/article/1
esp/article/1/author/1

编辑: 我的方法可行,但想知道是否有更好的方法

1 个答案:

答案 0 :(得分:4)

follow.nil? ? follow : "/#{follow}"

由于Ruby具有String#prepend方法,因此可以通过以下方式重构代码:

follow && follow.prepend("/")

或者由于Ruby 2.3具有安全的导航功能,因此可以将其表达得更加简洁:

follow&.prepend("/")