Ruby on Rails маршрутизация, как заставить принудительно изменить поддомен / домен - PullRequest
2 голосов
/ 05 февраля 2011

У меня есть пара поддоменов в моем приложении rails, и основной домен тоже.

Допустим, у меня есть такой маршрут входа:

 match "login", :controller => "user_sessions", :action => "new"

Теперь этот маршрутДоступ ко всем доменам и поддоменам, например:

porkjerkyicedcream.com/login

и ...

admin.porkjerkyicedcream.com/login

У меня вопрос, как заставить перенаправить удалить поддомен (илидобавь это).Поэтому, если кто-то посещает / login на admin.porkjerkyicedcream.com / login , они перенаправляются на основной домен (или наоборот)?

Cheers!

Редактировать:

  1. Мне не обязательно решение в маршрутизации.

  2. Я хочу избежать указания и доменного имени всамо приложение, поэтому оно может быть запущено во многих местах на разных доменах (например, в другом домене разработчиков)

Ответы [ 3 ]

7 голосов
/ 05 февраля 2011

Вы можете использовать before_filter в вашем контроллере, а затем перенаправить соответствующим образом.Например:

class UserSessionsController < ApplicationController
  before_filter :ensure_proper_subdomain, :only => "new"

  def ensure_proper_subdomain
    if request.host_with_port != 'admin.porkjerkyicedcream'
      redirect_to params.merge({host: 'admin.porkjerkyicedcream'})
    end
  end
end
0 голосов
/ 05 февраля 2011

Я думаю, что вы могли бы управлять этим в application_controller, если вы добавите:

  def default_url_options(options={})
    #add whatever logic you want
    { :host => "example.com" }
  end
0 голосов
/ 05 февраля 2011

Не думаю, что это можно сделать в файле маршрутизации. Но в любом случае вы всегда можете создать пользовательский фильтр и перенаправить пользователей в соответствии с текущим доменом / путем.

...