Как обслуживать контроллер только на конкретном поддомене? - Рельсы 3.1 - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть контроллер Partners, который я хочу отключить от сервера http://partners.example.com

  1. Есть ли что-то встроенное в Rails 3.1, которое я могу использовать для этого без связывания с httpd.conf или создания другого виртуального хоста?

  2. Как будет выглядеть запись route.rb для этого?

Любая помощь будет принята с благодарностью.

PS. Здесь я не использую субдомены с подстановочными знаками - только этот один субдомен.

ОБНОВЛЕНИЕ: Я получил субдомен для работы с решением Амиша ниже, но теперь все другие маршруты также отвечают на этот субдомен. Есть ли способ, чтобы субдомен отвечал исключительно на указанный контроллер?

Ответы [ 2 ]

2 голосов
/ 29 декабря 2011

Действительно, вы можете.

Если PartnersController является контроллером на основе REST, это так же просто, как добавить параметр ограничения к вызову в resources.

resources :partners, :constraints => { :subdomain => "partners" }

В качестве альтернативы,constraints может быть вызван с блоком, и все вызовы маршрутизации внутри блока будут подчинены установленному ограничению субдомена.

constraints :subdomain => "partners" do
  resources :partners
  ...
end

Запросы к ограниченным URL-адресам без правильного субдомена приведут к RoutingError.

2 голосов
/ 29 декабря 2011

Вы должны быть в состоянии сделать это с обновлением route.rb. Ознакомьтесь с ограничениями на основе запросов в руководстве по маршрутизации rails .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...