URLからある部分だけを取得する方法(Rails)

59日目です。
取ってきたい「user_idとの紐付け」ができずに、とても苦しんだのですが、URLからIDを取得することでひとまず解決したので紹介します。
(もっと良い方法がある気がしますが、、笑 ちなみに他の言語でもできるかはわかりません。)

URL取得する方法

「request.url」で取ってこれます。
例えば、下記のような正規表現と条件分岐を使って、「もしこのURLに当てはまったら、下記を実行する」なんてことができます。
(実際にアプリでも取り入れました。)

if request.url.match(/\/posts/)

URLからある部分だけを取得する方法

「request.url[X, Y]」で取得できます。
「X」は URLの一番左側を0とし、そこから何番目を取得したいか。
「Y」はXから右に何個取得したいかを指定できます。

使い方例

私が作成中のアプリで、学習時間を記録するページがあります。
そのページのURLが下記のようになっています。

http://localhost:3000/users/5/records/

そして、学習時間記録ページからマイページに戻るリンクを作りたいとします。
マイページに戻るURLは、Rails routesで確認すると下記のようになっています。

 GET    /users/:id(.:format)              users#show

そこで「request.url[X, Y]」を使い、下記のようにしてマイページに戻ることができるようになりました。

<a href="/users/<%= request.url[28, 1].to_i %>">マイページに戻る</a>

「「request.url[28, 1]」で左から28番目の文字を1文字だけ取得し、「to_i」で取得した文字(string)をintegerに変える」という処理を行なっています。

この記事が参考になりました。

Rails4・Rails5 で現在のURLを取得する。 - ECのウェブ担当者のメモ


発表会まで使える時間は後1日!少しづつ形にはなってきたけど、まだ問題があるので最後まで頑張ります。