【Rails】link_toで他ページのid属性を指定して遷移する

Railsのlink_toを使い、他ページの特定のid属性が付与されている箇所を指定する方法が分からずハマったため、備忘録としてまとめます。

バージョン
  • Ruby 3.0.3
  • Rails 6.1.6.1
記事の信頼性
  • ぼくは独学で未経験から従業員300名以上の自社開発企業へ転職しました。
  • 実務ではVue.jsとRailsを毎日書いています。
  • 初心者や駆け出しエンジニアがつまづくポイントも身をもってよく理解しています。
目次

問題

Railsのlink_toメソッドを使い、次のような実装をしていました。

利用規約の<%= link_to "禁止事項", guideline_path, target: '_blank', rel: 'noopener noreferrer' %>に該当した可能性があります。

遷移先はサービスの利用規約ページです。

「禁止事項」は利用規約ページ中段の第8条に記載されているため、そこまでスクロールされた状態で遷移したいです。

なので、第8条のタイトルに付与されているid属性prohibited-actionsを遷移先として指定したかったのですが、やり方がわかりませんでした、、。

<h3 class="sub-head" id="prohibited-actions"><span>第8条 禁止事項</span></h3>

解決策

以下のように記述することで、指定したid属性の箇所へピンポイントで遷移させることができました。

利用規約の<%= link_to "禁止事項", guideline_path((anchor: 'prohibited-actions')), target: '_blank', rel: 'noopener noreferrer' %>に該当した可能性があります。

anchorオプションを付与することで実現可能です!

おわりに

今まで知らなかったのですが、link_toメソッドには他にもたくさんのオプションが存在しています。

気になる方は以下のドキュメントを見てみてください。

参考文献

Railsエンジニアにおすすめの記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

未経験でSESから従業員300名以上の自社開発企業に転職しました。業務や個人開発で直面した問題や、転職・学習の経験を発信していきます。

コメント

コメントする

目次