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日!少しづつ形にはなってきたけど、まだ問題があるので最後まで頑張ります。