Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 单击a href以更改Rails中的变量_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 单击a href以更改Rails中的变量

Ruby on rails 单击a href以更改Rails中的变量,ruby-on-rails,ruby,Ruby On Rails,Ruby,我为一个年度会议制作了一个“会谈”脚手架。每一次谈话都包括一个名字、标题和发生的年份 我只想一次显示某一特定年份的会谈 在app/views/talks/index.html.erb文件中,我可以使用以下工具执行此操作: <% @year = 1978 %> <% @talks.where(:year => @year).each do |talk| %> @年)。每个人都做|说|%> 这将只列出1978年以来的会谈 我还在侧边栏(同一个文件)中列出了会谈的年

我为一个年度会议制作了一个“会谈”脚手架。每一次谈话都包括一个名字、标题和发生的年份

我只想一次显示某一特定年份的会谈

在app/views/talks/index.html.erb文件中,我可以使用以下工具执行此操作:

<% @year = 1978 %>
<% @talks.where(:year => @year).each do |talk| %>

@年)。每个人都做|说|%>
这将只列出1978年以来的会谈

我还在侧边栏(同一个文件)中列出了会谈的年份,使用:

其中列出了如下年份:

  • 一九七八年
  • 1979年
  • 1980年
  • ……等等
我希望用户能够点击一年,只显示从那一年的会谈

有没有办法通过url设置@talks变量

比如:

<li><a href="/talks?year=1978" ><%= year %></a></li>
  • 还是有更好的方法?

    在控制器中:

    def index
        @year = params[:year].to_i
        @year = 1978 if year < 1978
        @talks = Talk.where(:year => @year).to_a
    end
    
    def索引
    @年=参数[:年]。至
    @如果年份小于1978年,则年份=1978年
    @talks=Talk.where(:year=>@year).to_a
    结束
    
    删除视图中的


    替换
    @year)。每个do | talk |%>
    都由

    替换。谢谢,就我所知,这样做非常有效。又好又简单!
    def index
        @year = params[:year].to_i
        @year = 1978 if year < 1978
        @talks = Talk.where(:year => @year).to_a
    end