单击href以更改Rails中的变量

时间:2014-11-05 22:21:21

标签: ruby-on-rails ruby

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

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

在app / views / talks / index.html.erb文件中,我可以这样做:

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

然后将列出1978年的会谈。

我还使用以下方式列出了侧栏(同一文件)中发生会谈的年份:

<ul>
<% Talk.uniq.pluck(:year).each do |year| %>
<li><a href="" ><%= year %></a></li>
</ul>

其中列出了如下的年份:

  • 1978
  • 1979
  • 1980
  • ......等等。

我希望用户能够点击一年只显示当年的会谈。

有没有办法通过网址设置@talks变量?

类似的东西:

<li><a href="/talks?year=1978" ><%= year %></a></li>

或者有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

在您的控制器中:

def index
    @year = params[:year].to_i
    @year = 1978 if year < 1978
    @talks = Talk.where(:year => @year).to_a
end

在视图中移除<% @year = 1978 %>

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