Rails 3 - условная маршрутизация? - PullRequest
7 голосов
/ 15 марта 2011

У меня вопрос о маршрутизации 3 и настройке условного: корневого пути.

Прямо сейчас мой route.rb имеет следующее:

root :to => "topics#index"

Это здорово и модно, но только если пользователь находится на своем конкретном поддомене (стиль basecamp) на моем сайте. Если они заходят на www.myapp.com или myapp.com, это не должно совпадать: root. Мне было интересно, если это вообще возможно настроить, что-то вроде бы ...

if default_subdomain(www, "")
root :to => "promos#index"
else
root :to => "topics#index
end

Я знаю, что это не будет разрешено в файле rout.rb, но что-то такое же логичное. Кто-нибудь имеет какой-либо опыт с этим или какую-либо документацию / блог, который я мог бы прочитать, чтобы попытаться настроить что-то вроде этого.

Спасибо

За помощь Чака ниже (спасибо за тонну), это закончилось моим рабочим кодом:

constraints(:subdomain => "www") do
  root :to => "promos#index"
  end

  root :to => "topics#index"

1 Ответ

10 голосов
/ 15 марта 2011

Для этого можно использовать тег :requirements.

root :to => "promos#index", :requirements => { :subdomain => "www" }
root :to => "topics#index"

Я думаю, что это сработает.Я никогда не сталкивался с этим из-за поддоменов / отсутствия поддоменов.

Edit : После некоторого чтения Rails 3 использует :constraints вместо.

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