Ruby on Rails会话[:counter]增加2

时间:2012-06-13 13:59:47

标签: ruby-on-rails session

我正在学习务实的书架课程。我试着做一个会话计数器。 我的商店控制器是

  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]?

2 个答案:

答案 0 :(得分:8)

您在行动中两次致电increment_counter:首先设置@count,然后再次处理@shown_message。

答案 1 :(得分: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