Rails Routing from the Outside In — Ruby on Rails Guides
こういうこと。
You can also specify constraints in a block form:
namespace :admin do constraints subdomain: 'admin' do resources :photos end end
これを使えば先日の
Rails 4.2.11.1, 5.0.7.2, 5.1.6.2, 5.2.2.1, and 6.0.0.beta3 have been released! | Riding Rails
であった問題は以下のように一網打尽に解決できる。
constrains lambda {|req| req.format == 'html'} do
..
end
Accept ヘッダ経由で format に不適切な文字列が入っていたら routing にマッチしないので 404 が返って終了となる。lambda で書く場合の req.format は Symbol ではなく String であることに注意。(Symbol は Symbol で別に取得方法があるはず。)
何かの事情で Rails のアップグレードがすぐにはできない場合には上の対処方法でもなんとかなる。