需要使用created_at字段按年过滤文章。
我在这样的文章中获得了多年的链接:
文章助手:
def artcles_by_years
Article.uniq.pluck("EXTRACT(YEAR FROM created_at)")
end
index.html.erb
<% for art in artcles_by_years do %>
<%= link_to art %>
<% end %>
显示:2009 2010 2011 2012
,确定无法工作的链接。
问题:
如何在控制器中构建工作链接和查询以按年过滤文章,例如按2009并返回2009年创建的所有文章。 谢谢。
答案 0 :(得分:6)
您可以为模型添加范围
scope :year, lambda{|year|
where(" EXTRACT(YEAR FROM created_at) = ? ", year ) if year.present?
}
并使用控制器中的范围:
@articles = Article.year(params[:year])
将链接显示为:
<%= link_to art, articles_path( :year => atr) %>