興味深いケースがあります。私は、Rails 2.3アプリケーションのホワイトラベリング機能に取り組んでおり、動的セッションドメインの設定に問題があります。Rails:動的セッションドメインとサブドメイン間の共有セッション
したがって、各ホワイトラベルには、company1.com、company2.com、company3.comの各ドメインが必要です。それぞれの上には、サブドメインのサポートとそれらの間のセッションの共有が必要です。
I.e. test1.company1.com、test2.company1.com、company1.com < =共通のセッションを共有する必要があります。 test1.example.com、example.com < =は、共通のセッションを共有する必要がありますが、company1.comとは異なるものです。
それがこのように行われています(単一塩基のドメインのための)一般的なケースで:
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
しかし、上記のコードは動作しません。
似たようなことが成功したことがありますか、問題や解決策がどこにあるのかわかりませんか?
はActionControllerを使用して、あなたの時間
私はこのコードの作業を取得することができました。何がうまくいかないのか分かりますか?正しい値を設定しているかどうかを確認するために、各ステップでログに「#{host_name}」を印刷してみましたか?私の推測では、:domainオプションの適切な値を設定していないということです。 –