WedX - журнал о программировании и компьютерных науках

rails 3 — одно приложение, несколько доменов, как реализовать другой «корневой» маршрут для одного из доменов?

Несколько разных доменных имен указывают на мое приложение на heroku, например foo.com и bar.com оба указывают на приложение. (Мы размещаем специализированные страницы блогов, и foo.com — это домен, используемый нашими пользователями, которые создают веб-страницы, а bar.com — это «общедоступный» домен, на котором находятся страницы блогов.)

Все страницы редактирования пользователей имеют аутентификацию Devise, а «корнем» на foo.com является страница панели управления пользователя. Вошедший в систему пользователь может просмотреть страницу своего блога на странице foo.com/reviewpage/USERID.

каждая учетная запись пользователя также имеет уникальное «дружественное имя URL», например «acme-inc-dallas-tx».

На общедоступной веб-странице bar.com (но ТОЛЬКО на этом одном домене) мне нужно как-то сопоставить

https://bar.com/friendly-url-name на :controller => mycontroller, : действие => мое действие

Я предполагаю, что это означает, что мне нужно переназначить "root" на bar.com (но ТОЛЬКО bar.com) на метод "find_friendly_url", который ищет соответствующую страницу и отображает ее.

Если это правильный способ продолжить... как мне переназначить «root» для одного и только одного домена, который указывает на мое приложение?

17.06.2011

Ответы:


1

Я обычно поступаю следующим образом:

constraints(Subdomain) do
  match "/" => "home#admin"
end

match "/" => "home#standard" 

Or:

match "/" => "home#admin", :constraints => {:subdomain => "admin"}

match "/" => "home#standard" 

Что создает:

/(.:format) {:action=>"admin", :subdomain=>"admin", :controller=>"home"}
root  /(.:format) {:action=>"standard", :controller=>"home"}

Та же логика позволяет создавать маршруты, доступные только для нужных поддоменов.

17.06.2011
  • очень здорово, спасибо... Я использовал :host =› otherdomain.com вместо поддомена, и это сработало отлично. 21.06.2011
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]