LoginSignup
4
3

More than 3 years have passed since last update.

link_toメソッドのpathの引数、要る・要らない

Posted at

はじめに

アプリケーションを作るときに、いつもlink_toメソッドでエラーが出ていた。しかも、そのリンク先に飛ぶときではなく、link_toメソッドがあるページを表示させたときに、
ActionController::UrlGenerationError
このエラーが出ていて、悩まされた。いつも○○_pathと、ルーティングを確認して記述するところまでは問題がなく、躓かない。ここに( )で引数を渡すとなると、何を渡したらいいのか分からなくなっていた。

引数がなくてもOKなパターン

 アプリケーションを利用する誰もが同じページに飛ぶ場合は引数がなくてもよい。ログインページやroot_pathのページがこれにあたる。

やっぱりrails routesは便利だった

ターミナルでカレントディレクトリが作成中のアプリケーションのディレクトリで

% rails routes

を入力すると、ルーティングを教えてくれる。
pathの記述はもちろん、Prefixの部分を見る。しかし、
ここで着目すべきは、URI Patternの部分。ここで/:idなど、idがURIに含まれている場合は、引数を渡す必要がある。
:idとidがURIに含まれている場合は、引数に(user.id)などとすればよい。
また、引数によっては、.idを省略できる場合もある。

4
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3