この非常に一般的な問題を解決する正確な情報を実際に見つけることはできません。クッキーを設定したいのですが、それが不可能な場合(クッキーが無効になっている場合)、エラーページを表示したいと思います。
私のアプリケーションコントローラーでは、次のようにCookieを設定します。
if (cookies[:user].blank?)
cookies[:user] = {
:value => (0...10).map{ ('a'..'z').to_a[rand(26)] }.join,
:expires => 6.months.from_now,
:domain => 'localhost'
}
end
次に、他のコントローラーで予約コントローラー:
if cookies[:user].blank?
@publish_form = false
@no_cookies = true
end
とビューで:
<% if @no_cookies %>
You need to enable cookies
<% end %>
さて、これは実際には機能しません。Cookieが有効になっている場合はCookieが作成されますが、Cookieが無効になっている場合でも「Cookie」が作成されるため、Booking Controllerでは値が設定され、空白にはなりません。ページがリロードされると、別のCookie値が作成されます。セッションか何かを作成しているだけのようです。request.cookieの使用も機能しません。
ユーザーがページに入るたびにCookieを作成し、Cookieが存在するかどうかを確認し、Cookieが存在するかどうかに応じて異なるビューを表示するには、何を使用する必要がありますか?