Разница между :on => :collection и :on => :member - это стиль создаваемого маршрута и связанные с ним помощники маршрута.
resources :posts do
# on collection
get 'search', on: :collection
# --> generates '/posts/search' and search_posts_path
# on member
get 'share', on: :member
# --> generates'/posts/:id/share' and share_photo_path(@post)
end