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 之后。. 我的会话 [:counter] 有什么问题?

4

2 回答 2

8

您在操作中调用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 回答