我为年度会议制作了“会谈”脚手架。每次谈话都包括名称,标题和发生的年份。
我想一次只显示一个特定年份的会谈。
在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>
其中列出了如下的年份:
我希望用户能够点击一年只显示当年的会谈。
有没有办法通过网址设置@talks变量?
类似的东西:
<li><a href="/talks?year=1978" ><%= year %></a></li>
或者有更好的方法吗?
答案 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| %>