У меня интересный случай. Я работаю над функциональностью «белой маркировки» для приложения Rails 2.3, и у меня проблемы с настройкой динамических доменов сеансов.
Таким образом, каждая белая метка должна иметь собственный домен: company1.com, company2.com, company3.com. Более того, у каждого из них должна быть поддержка поддоменов и разделение сеанса между ними.
т.е. test1.company1.com, test2.company1.com, company1.com <= должны совместно использовать общий сеанс; test1.example.com, example.com <= должен использовать общий сеанс, но отличается от company1.com. </p>
В общем случае (для одного базового домена) это делается следующим образом:
file:production.rb
config.action_controller.session[:domain] = '.company1.com'
Если я хочу поддерживать несколько доменов, мне придется динамически устанавливать этот параметр конфигурации в зависимости от домена, к которому осуществляется доступ. В настоящее время я пытаюсь сделать это следующим образом:
file:environment.rb
require 'dispatcher'
module ActionController
class Dispatcher
def set_session_domain
tld_size = SubdomainFu.tld_size+1
host_name = @env['HTTP_HOST'].split('.')[-tld_size,tld_size].join('.')
ActionController::Base.session = { :domain => ".#{host_name}" }
end
before_dispatch :set_session_domain
end
end
Однако приведенный выше код не работает.
Успешно ли вы сделали что-то подобное или у вас есть идея, где может быть проблема / решение?
Заранее спасибо за ваше время