初めての訪問者にはコンテンツを表示したいので、セッションをチェックしてクッキーを保存するヘルパーメソッドを作成しました。初めての訪問者にコンテンツを表示する
私のコントローラは、このように設定されています
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
helper_method :first_time_visiting?
def first_time_visiting?
if session[:first_time].nil?
cookies.permanent[:first_time] = 1
end
end
end
class ItemsController < ApplicationController
before_action :first_time_visiting?
end
そして、私はこのような私の見解でメソッドを呼び出しています:
<% if first_time_visiting? %>
<div class="new-visitor-show">Test</div>
<% end %>
私が最初にした後、「テスト」を見るべきではありません訪問する、しかし私はある。ヘルパーメソッドを誤って使用していますか?
ああ、私は分かりませんでした。ありがとう!ちょうど私は理解しています:あなたはcookieと@first_visitと呼ばれるインスタンス変数を設定するbefore_actionを定義しています。 – sabaeus
クッキーが既に設定されている場合、メソッド 'first_time_visit'は呼び出されないので、@ first_visitはnilになります –