Rails 3.1 загружает контроллер с другого пути на основе поддоменов - PullRequest
1 голос
/ 22 июня 2011

Возможно ли динамически изменить путь, с которого используются контроллеры? Райан Бейтс показал, как изменить view_paths здесь: http://railscasts.com/episodes/269-template-inheritance

Я делаю CMS, где пользователь может создать сайт и ввести свой собственный поддомен. Я бы хотел, чтобы "/" указывал на "public # welcome", если нет поддоменов, но если есть поддомен, я хочу, чтобы он указывал на "sites / public # welcome".

Я использую Rails 3.1, если это что-то меняет.

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Я понял это:

  constraints(:subdomain => /.+/) do
    scope :module => "sites" do
      root :to => 'public#welcome'
    end
  end

  root :to => 'public#welcome'

Теперь, когда пользователь посещает "/" Sites :: PublicController, будет использоваться, если субдомен существует, но только PublicController, если субдомен не завершен. Добавление scope :module => "sites" do...end делает мой файл маршрутов простым и управляемым.

1 голос
/ 22 июня 2011

Вы должны быть в состоянии разрешить эту ситуацию, используя ограничения, если я не ошибаюсь (что я мог бы, так как на самом деле я еще не пробовал следующее):

constraints(:subdomain => /.+/) do
  root :to => 'sites/public#welcome'
end

root :to => 'public#welcome'
...