2

それは最も奇妙なことです。昨日Rails WEBrickデバッガーを実行したとき、次のようなことができました

cookies[uid] = s.session_id

ここで、「uid」は、ユーザー ID を含む渡された引数であり、次に期待します

cookies[uid]

私を返すには、次のように言います。

29b93443d9ec18168a26e1ab12957b0dd0b799ff

今日、私はいつも「nil」を返します。既存の値を問題なく読み取ることができます。にリストされているキーのいずれか

cookies.keys

うまく動作します。

この動作について説明できる人はいますか。それは非常に腹立たしく、Google 検索では答えが得られませんでした。

4

2 に答える 2

4

元の質問者、こちら。それらのCookieを設定できることがわかりました。問題は、入力するときです

cookies[:key]

デバッガーでは、ブラウザーから読み取られた Cookie の値が常に表示されるようです。それまでの間、値がどこに保存されるかはわかりませんが、ブラウザーで Cookie を調べると、私の変更が実際に存在することが確認されます。便利なことに、cookies[:key] は割り当ての値を返すので、おそらく次のようなことができます。

@future_value = cookies[:key] = {
                                 :value => 'new value',
                                 :expires => @really_soon
                                }

なぜ以前にそれらを見ることができると思ったのかわかりません!

于 2009-01-04T09:26:37.020 に答える
1

また、Railsはキーを設定するとキーを文字列に変換するため、Cookieを記号ではなく文字列を使用して読み取る必要があります。

cookies[:key] = "value"
cookies[:key]  # => nil
cookies['key'] # => "value"
于 2009-01-23T22:52:44.387 に答える