2009-07-30 22 views
5

Rails and Rack'a oldukça yeni geldim, ancak bu adam Rack to implement dynamic session domain middleware'u kullanma konusunda açık sözlü bir yazışmaya sahipti. Kod iyi görünüyor ve yerel makinemde uygulamam mümkün değil, ancak üst düzey etki alanlarını hala tek bir oturum açmada aşabiliyorum. environment.db sonraRaylar - Rack kullanarak dinamik çerez alan adları

class SetCookieDomain 
    def initialize(app, default_domain) 
    @app = app 
    @default_domain = default_domain 
    end 

    def call(env) 
    host = env["HTTP_HOST"].split(':').first 
    env["rack.session.options"][:domain] = custom_domain?(host) ? ".#{host}" : "#{@default_domain}" 
    @app.call(env) 
    end 

    def custom_domain?(host) 
    domain = @default_domain.sub(/^\./, '') 
    host !~ Regexp.new("#{domain}$", Regexp::IGNORECASE) 
    end 
end 

Ve: production.db içinde

config.load_paths += %W(#{RAILS_ROOT}/app/middlewares) 

Son olarak (ve development.db):

config.middleware.use "SetCookieDomain", ".example.org" 

Herhangi İşte

katman kod yardım büyük beğeni topluyor.

DÜZENLEME: Rails 2.3.3 çalıştıran ve ben geliştirme modunda çalışmak için bu alma benzer sorunlar vardı 1.0

cevap

1

Raf ediyorum. Localhost ile çalışırken, işe yaramazdım. Ancak, /com/hosts dosyasında localhost'a işaret eden bir etki alanı üzerinden erişerek, örneğin, computer.local, bunu çalışmaya başlayabildim.

İlgili konular