我正在寻找一些关于使用顶级路由的理念和技术实践的反馈,这在 Rails 中不是包罗万象的。
例子:
# routes.rb
get '/cities' => 'cities#index'
get '/:city_id' => 'cities#show', as: :city, city_id:/([a-z\-\d]+)/
我有大约 30k 个城市:city_id 应该仅限于匹配“/los-angeles”之类的内容,而不是“/somewrongthing.jpg”。由于这是最后一条路线,因此它已成为一个包罗万象的路线。如果找不到城市,我目前正在渲染 404,但这意味着每次丢失的链接通过时都会对数据库造成打击。我通过约束对其进行了限制,但它并不是我所希望的优雅解决方案。
除了将其放在 /city/:city_id 之类的下方之外,还有其他解决方案吗?