Powered by SmartDoc

クッキーの操作

クッキーを作成する

クッキーの名前とパラメータを与えてCKCookieオブジェクトを作成します。クッキー名は必須ですが、パラメータは省略しても構いません。

cookie = CKCookie.new( name, value )

クッキーを取得する

ブラウザに設定されているクッキーはCKRequestオブジェクトから取得することができます。CKRequestオブジェクトは、CKApplication#request属性で取得できます。

CKRequestクラスのクッキー取得メソッド
メソッド 説明
cookie(key) keyの名前のクッキーを返す。クッキーが複数ある場合は、最初に見つかったものを返す。
cookies すべてのクッキーを配列で返す。
cookie_value(key) 名前がkeyのクッキーのパラメータを返す。クッキーが複数ある場合は、最初に見つかったものを返す。
cookie_values(key) 名前がkeyのすべてのクッキーのパラメータを配列で返す。keyを指定しない場合は、すべてのクッキーのパラメータを返す。

クッキーを設定する

生成したクッキーはCKResponse#add_cookieでCKResponseオブジェクトに追加します。クッキーを置き換えるのではなく、以前に設定したクッキーはそのままに新しいクッキーを追加していくことになります。

cookie = CKCookie( 'name' )
application.response.add_cookie( cookie )

クッキーをブラウザから削除する

クッキーをブラウザから削除するには、同じ名前を持つクッキーを送信して上書きします。その際に有効期限を過去に設定しておくと、ブラウザから完全にクッキーが削除されます。

cookie = CKCookie "name"
cookie.expire = Time.new - 60
response.add_cookie cookie

クッキーをCKResponseオブジェクトから削除する

CKResponseオブジェクトに設定したクッキーはCKResponse#remove_cookieで削除します。

application.response.remove_cookie( 'name' )