ある参考書でのRailsのルートの設定部分についてお聞きしたい事があります。
Rails.aplication.routes.draw do
1.upto(18) do |n|
get “lesson/step#{n}(/:name) ” =〉 “lesson#step#{n}”
end
end
(/:name)の部分ですが()で囲んでいる意味を教えて頂けないでしょうか。
step1のアクションを呼びだせるようにすると考えますと
get “lesson/step1 /:name ” =〉 “lesson#step1”
ができあがれ良いと思うので()は必要ないような・・・
よろしくお願い致します。
routes.rbでのかっこ付きは任意のパラメーターとなる仕様です。
つまり
/lesson/stepN/?name=○○というurlにも/lesson/stepNというurlにも双方に対応できます。
一方、かっこを付けないと/lesson/stepNというurlを叩いた時にルーティングエラーが起きてしまいます。
勿論/lesson/stepNこのurlを踏まないように設計すれば特に問題はないのですが。
ご回答ありがとうございました!
わかりやすい解説をして頂き大変助かりました。