Всем привет.
Вот routes.rb:
Rails.application.routes.draw do
constraints Constraints::AppRouter.new('first_domain') do
...
get '/' => 'users#search', constraints: -> (request) { request.params[:q].present? }
...
end
constraints Constraints::AppRouter.new('second_domain') do
get '' => 'tech#default_action'
end
Если в запросе есть параметр "q", то управление передается в users#search независимо от домена. Constraints::AppRouter#matches? в этом случае даже не вызывается.
Правильно ли я понимаю, что общие constraints, которые оформлены блоками, в итоге применяются к каждому маршруту. Затем применяются те constraints, которые были прописаны в самих маршрутах.
Тогда я могу объяснить такое поведение.
То есть, чтобы сделать то, что мне нужно, надо в каждом "инлайновом" constraint'е учитывать еще и тот, который вверху?
Заранее спасибо.