2016-09-03 6 views
0

私はSinatraとRubyを使ってWebアプリケーションを開発しています。すべてのサブドメインからアクセスできるCookieを設定する必要があります。私の元のコードは、このした。しかし、それは見ての後のすべてのサブドメインからはアクセスできませんでしたSinatraでクッキーを設定する方法

に「EN-US」に等しい。これはクッキー「USER_LANGUAGE」を設定する所望の効果(例えば生産

@language = 'en-US' 
cookies[:USER_LANGUAGE] = @language 

私はクッキーのデータをチェックすると、それは完全に間違って設定されている

@language = 'en-US' 
cookies[:USER_LANGUAGE] = { 
    :value => @language, 
    :domain => '.example.com' 
} 

(クッキーの値は括弧内のすべてのもので、ドメインはまだだけexample.comです:How to set a cookie on a separate domain in Railsおよび他の類似の質問は、私はこれを試してみました。 not .example.com)ここ

が生成される値である:

%7B%3Avalue%3D%3E%22en-US%22%2C+%3Adomain%3D%3E%22.example.com%22%7D

答えて

2

すべてのあなたのクッキーはすべてのサブドメインからアクセスできるようにしたい場合は、あなたのアプリケーションのためのクッキーのオプションを設定できます。

set :cookie_options, :domain => '.example.com' 

1つのクッキーに必要な場合は、cookiesオブジェクトを使用する代わりにこれを行うことができます。

response.set_cookie(:USER_LANGUAGE, :value => @language, :domain => '.example.com') 
+0

ありがとうございます。 'response'メソッドを使うことは完全に機能しました。 –

関連する問題