Разное представление для разных поддоменов в Rails - PullRequest
1 голос
/ 16 ноября 2010

Я создаю приложение Rails, где мне нужно сделать тест на удобство использования трех разных видов для одного и того же приложения. Моя мысль состоит в том, чтобы отключить путь просмотра по умолчанию в зависимости от субдомена.

Например, я хотел бы иметь возможность определять пути примерно так:

option1.mysite.com => views/option_1
option2.mysite.com => views/option_2
option3.mysite.com => views/option_3

Я бы хотел оставить Модели и Контроллеры одинаковыми, но отключить Представления в зависимости от субдомена. Какой может быть лучший способ сделать это?

1 Ответ

1 голос
/ 16 ноября 2010

Мы делаем это примерно так:

session[:site] = case request.subdomains.last 
        when "a" then "a"
        when "b" then "b"
        when "c" then "c"
end

Это часть метода set_site в нашем контроллере приложений.Каждый запрос проверяет, установлена ​​ли session[:site];в противном случае он вызывает set_site, чтобы установить его.

В вашем случае, теперь вам просто нужно ввести логику в свои представления, чтобы представлять вещи по-разному в зависимости от значения session[:site], но еще лучше, есливаш фактический вид HTML такой же, а главное отличие в CSS.Затем вы просто загружаете разные CSS-файлы в зависимости от значения session[:site].

...