移除網址中多餘斜線的helper

在網站開發中,許多時候可能需要組裝連結的網址

像是domain name 這些常用的設定通常會放在env中

但是我們不一定擁有production權限去查看env 的設定

例如我們有個網址是

"#{ENV['DOMAIN_NAME']}/about_me"

如果env中的DOMAIN_NAME中含有斜線,例如 ‘https://home.com/

那麼在組裝網址時就有可能發生錯誤變成 'https://home.com//about_me'

所以我們可以寫一個helper來自動清除可能多餘的斜線 ‘/’

# app/helpers/application_helper.rb
module ApplicationHelper
  def normalize_url(url)
    # 移除非 'https://' 後的多餘斜線
    cleaned_url = url.gsub(%r{([^:])/+}, '/')

    # 強制 URL 開頭為 'https://' 並確保僅有兩個斜線
    cleaned_url.sub!(%r{^https?:/+}, 'https://')

    cleaned_url
  end
end
# 在 controller 或 view 中使用 

normalized_url = normalize_url('https://///home.com//edit/1') 

puts normalized_url 

# 輸出: https://home.com/edit/1

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *