Ruby on rails 更新会话变量并刷新RoR中的页面

Ruby on rails 更新会话变量并刷新RoR中的页面,ruby-on-rails,session,ruby-on-rails-4,Ruby On Rails,Session,Ruby On Rails 4,我有几个视图,希望能够引用一个名为session[:month\u view]的基于日期的会话变量,该变量定义了从各个表中提取的数据。我的问题是,我希望用户能够更新他们的视图以查看下个月或上个月,但我无法确定如何更新会话[:month\u view] 如果会话变量当前不存在,我有一种设置该变量的方法(有效地将:month\u视图设置为当前月份: 在控制器中,在之前调用: def set_month_view if session[:month_view] == nil

我有几个视图,希望能够引用一个名为
session[:month\u view]
的基于日期的会话变量,该变量定义了从各个表中提取的数据。我的问题是,我希望用户能够更新他们的视图以查看下个月或上个月,但我无法确定如何更新
会话[:month\u view]

如果会话变量当前不存在,我有一种设置该变量的方法(有效地将
:month\u视图
设置为当前月份:

在控制器中,在之前调用

  def set_month_view
    if session[:month_view] == nil
        session[:month_view] = DateTime.new(Time.now.year, Time.now.month, 1, 0, 0, 0, "+00:00")
    end
  end

我想要的是一种在视图中使用链接或表单来递增或递减的方法:month\u view乘以1或-1。我想我需要将一个整数传递给
set\u month\u view
方法,但我只是不知道如何执行。

这应该可以做到,并且非常容易阅读/维护

控制器方法: (根据需要添加重定向或渲染)

查看链接:

You are viewing month: <%= session[:month_view] %>
<%= link_to 'backwards', decrement_month_view_controller_path %>
<%= link_to 'forwards', increment_month_view_controller_path %>
您正在查看月份:

因此,理想情况下,在许多不同的页面上都会有相同的链接,这将更改当前月份,然后重新加载页面?是的,就是这样。谢谢Matt-我得到了:未定义的局部变量或视图上的方法“decrement\u month\u view\u controller\u path”-这是实际的语法还是另一个路径的表示形式?你会发现ed将控制器或资源的名称替换为
\u controller\u
,或将链接替换为
(将名称替换为控制器名称)。我建议您阅读一些内容以了解这一操作。确定-控制器称为StaticPages(或static\u pages\u controller.rb)减量月视图方法就在那个文件中。仍然有错误:(我把这个作为链接代码…我想我就快到了。我基本上需要更好地理解路由。标记为回答。
You are viewing month: <%= session[:month_view] %>
<%= link_to 'backwards', decrement_month_view_controller_path %>
<%= link_to 'forwards', increment_month_view_controller_path %>