Субдомены рельсы 3 - PullRequest
1 голос
/ 18 марта 2011

У меня простой вопрос, который я не могу понять.

У меня есть приложение rails 3, использующее субдомены.

Фирма имеет много пользователей.Когда пользователь входит в систему, я хочу перенаправить его на поддомен своей фирмы.

Я использовал скринкаст Райана Бейтса, чтобы заставить работать субдомены.http://railscasts.com/episodes/221-subdomains-in-rails-3

В моем user_sessions_controller у меня есть.

def create
@user_session = UserSession.new(params[:user_session])

if @user_session.save
  @firm = current_user.firm
  flash[:notice] = "Successfully logged in."
  redirect_to root_url(:subdomain => @firm.subdomain)
else
  render :action => 'new'
end

end

Это отправляет пользователя в фирме с поддоменом lizz по этому URL

http://lvh.me:3000/?subdomain=lizz

при входе пользователя в систему эта ссылка работает

<%= link_to current_firm.subdomain, root_url(:subdomain => current_firm.subdomain) %>

Есть ли у вас какие-либо идеи о том, как перенаправить с контроллера на поддомен?

1 Ответ

3 голосов
/ 18 марта 2011

Я думаю, что ваша проблема в том, что вы URL с именованным URL root_url.Вспомогательный метод url_for, который вы изменили (если вы внимательно следили за Railscasts), вероятно, не используется для именованного URL.

Попробуйте вместо этого использовать url_for.

Edit

URL-адреса имен генерируются в actionpack-3.0.x / lib / action_dispatch / routing / route_set.rb и не будут использовать ваш собственный метод url_for.Тем не менее, поддерживает параметр :host, поэтому вам нужно написать что-то вроде

... root_url(:host => "#{current_firm.subdomain}.domain.tld") ...
...