名前付きルートの引数には変数を渡せる【25/30 2nd】
June 11, 2020
こんにちは、たわらです。
今回は、名前付きルートで変数を渡せることの確認です。
resources で名前付きルートを生成する
resources メソッドを使うと、7つの名前付きルートが自動生成されます。パスヘルパーやら URL ヘルパーとも呼ばれます。呼び方統一してほしいですね。
resources :boards
こうすると、「〇〇_path」や「〇〇_url」ができるのですね。
この2つの違いは、生成されるパスが違います。
「〇〇_path」の場合だと、
/users
や/users/:id/edit
といったパスを生成します。
一方で、「〇〇_url」の場合だと、
http://www.hoge.com/users
などのようにフルパスを生成します。
そういう違いがあったんですね、、、Rails はじめて2ヶ月くらいになるけどはじめて知りました、、、
名前付きルートは引数に変数を渡せる
こんなふうに名前付きルートには変数を渡すことができます。
redirect_to board_path(comment.board)
このcomment.board
の中身はこのようになってます。
id: 62,
title: "aaa",
body: "aaa",
user_id: 11,
created_at: Tue, 26 May 2020 19:09:26 JST +09:00,
updated_at: Tue, 26 May 2020 19:09:26 JST +09:00,
board_image: "something.jpg"
で、実際に生成されたパスは、
[4] pry(#<CommentsController>)> board_path(comment.board)
=> "/boards/62"
となります。board 変数の id が格納されていますね。
ルーティングを確認すると、、、
board GET /boards/:id boards#show
となっています。指定されたとおりのパスが変数から生まれています。
変数いれればなんとなくその変数で指定したページが表示されるんだろうな、と思っていましたが、その動作を確認できてよかったです。
最後に
復習っていいですね。 読んでくださった、ありがとうございます。