こんにちは!
ねこじょーかー(@nekojoker1234)と申します。
Railsの開発をしていると、URLを取得したり、どこから来たかを判断したりしますよね。
そんな人のために、使い方をまとめておきました。
この記事のことを覚えておけば、だいたい何とかなると思います。
表示中のURLを取得する
request.url
遷移元のURLを取得する(どこから来たか)
request.referer
遷移元のURLに指定したパスが含まれているかどうか
/users/edit
が含まれていれば、true
になります。
また、ボッチ演算子「&」を使用しているのは、referer
がnil
になる場合があるためです。
(nil
に対してメソッドを呼び出すとエラーになる)
request.referer&.include?('/users/edit')
余談ですが、「&」がボッチ演算子と呼ばれているのは、「&」が1人で体育座りをしているように見えることから、そのように名前がついたそうです。
ルートパスかどうか
request.path == "/"
ちなみに、ユーザー一覧のパスかどうかは以下で判断できるので、ルートパス以外にも応用できます。
request.path == "/users"
オブジェクトのURLを取得する
post = Post.find(1)
url = polymorphic_url(post)
これで取得できるのは、「https://〇〇.com/posts/1」です。
オブジェクトを渡すと、そのオブジェクトが表示されるときに使用されるURLが返却されます。
以上です!
あわせて読みたい
HTMLもわからない初心者が、独学で「投稿型SNSサービス」を作ったって本当?【193日間の死闘】
運営している PlayFab 専用ブログ
https://playfab-master.com