collectionとmemberは、ルーティングにおいて生成されるURLとコントローラーを自由に設定する記述のこと。
routes.rb
#collectionによる記述
resources :tweets do
collection do
get 'search'
end
end
#/tweets/searchにアクセスした時にtweetsコントローラのsearchアクションに振り分ける。
#つまり、以下の記述と同義
get '/tweets/search' => 'tweets#search'
#memberによる記述
resources :tweets do
member do
get 'search'
end
end
#挙動はほぼ同じだが、URIパターンに:idが入る違いがある。
#よって以下の記述と同義
get '/tweets/:id/search' => 'tweets#search'
resourcesメソッドやネストによりルーティングの記述が簡素化して非常に見易くなっているが、中でどのような振り分けが起きているのかを正しく理解する工程が必要だと感じ記載した。
Progateの学習では一つ一つ書かれており冗長だったが、同様の記載に敢えて直すことで簡単に理解出来た。
rails routes万歳。初記事で緊張する。