解決

collection を使用する。

比較

resources :notifications, only: %i[index] do
  get "/on_top", to: "notifications#on_top" # notification_under GET   /notifications/:notification_id/under(.:format)  notification#under
  collection do
    get "/on_top", to: "notifications#on_top" # under_notifications GET  /notifications/under(.:format)                   notification#under
  end
  member do
    get "/on_top", to: "notifications#on_top" # under_notification GET   /notifications/:id/under(.:format)               notification#under
  end
end

Rails 5 Routing Cookbook: 10 recipes for the novice Rails developer and beyond

事象

idを必要としないルート(/hoge/new_route)を追加しようとしたがid が必要のルート(/notifications/:notification_id/under)になる。

resources :notifications, only: %i[index] do
  get "/on_top", to: "notification#on_top"
end