4

この非常に一般的な問題を解決する正確な情報を実際に見つけることはできません。クッキーを設定したいのですが、それが不可能な場合(クッキーが無効になっている場合)、エラーページを表示したいと思います。

私のアプリケーションコントローラーでは、次のように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が存在するかどうかに応じて異なるビューを表示するには、何を使用する必要がありますか?

4

1 に答える 1

0

2回目のリクエストが必要だと思いますか?実際に設定できるかどうかを1回のリクエストで知る方法がないので。

たぶん、代わりにjavascriptを使用してCookieを読み取ろうとすることができますか?

于 2012-05-02T16:59:26.620 に答える