railsのurlをroot_url+手書きで書いてたりするの?
はい、書いてました。
手書きの何が悪いんだ!
って思うんですが、テストや変更に圧倒的に弱いんですよね。
これが致命的ですね。
基本的に手書きで書くのはやめましょう。
手書きで書くというのは、こういうのですね。
url = root_url + 'contact'
こういう状況に陥るのは、メールのurlを書く場合に、どうすればいいんだ?って応急処置的に手書きで書いちゃうんですよ。
対策
url_helperをincludeします。
include Rails.application.routes.url_helpers
これで対象となるpathの値を取得することができます。
user_sessions_path GET /user_sessions(.:format) user_sessions#index POST /user_sessions(.:format) user_sessions#create new_user_session_path GET /user_sessions/new(.:format) user_sessions#new edit_user_session_path GET /user_sessions/:id/edit(.:format) user_sessions#edit user_session_path GET /user_sessions/:id(.:format) user_sessions#show PATCH /user_sessions/:id(.:format) user_sessions#update PUT /user_sessions/:id(.:format) user_sessions#update DELETE /user_sessions/:id(.:format) user_sessions#destroy
例えば、上記のようなやつですね。
#相対パス new_user_session_path => "/user_sessions/new" #絶対パス new_user_session_url←urlに変更する => "http://localhost:3000/user_sessions/new"
ちなみに上の:id(.:format)
が入る場合
user_session_path(id: 1) => "/user_sessions/1"
これでurlの処理で困ることはなくなると思います。
まとめ
url_helpersが便利すぎ