1

私は実用的な本棚のレッスンを勉強しています。セッションカウンターを作ってみました。私のストアコントローラーは

  class StoreController < ApplicationController
  def increment_counter
  if session[:counter].nil?
    session[:counter] = 0
  end
  session[:counter] += 1
end
  def index
    @count = increment_counter
    @products  = Product.all
    @cart = current_cart
    @time = Time.now
    @shown_message = "You've been here #{@count} times" if increment_counter >5
  end
end

そして私の見解は

<h5><p><%= @shown_message %></p></h5>..

5回まで効かない。しかし、5,7,9,11 として数え始めた後。. セッション[:カウンター]の何が問題になっていますか?

4

2 に答える 2

8

アクションで 2 回呼び出しincrement_counterます。最初は @count を設定するとき、次に @shown_message の条件でもう一度呼び出します。

于 2012-06-13T14:02:01.743 に答える
3

ksolの回答を補足します。最後の呼び出しで @count を使用します。

def index
  @count = increment_counter
  @products  = Product.all
  @cart = current_cart
  @time = Time.now
  @shown_message = "You've been here #{@count} times" if @count >5
end
于 2012-06-13T14:03:55.873 に答える