rma*_*002 1 ruby-on-rails ruby-on-rails-3.2
需要使用created_at字段按年过滤文章.
我在这样的文章中获得了多年的链接:
文章助手:
def artcles_by_years
Article.uniq.pluck("EXTRACT(YEAR FROM created_at)")
end
Run Code Online (Sandbox Code Playgroud)
index.html.erb
<% for art in artcles_by_years do %>
<%= link_to art %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
它显示:2009 2010 2011 2012,当然,非工作链接.
题:
如何在控制器中构建工作链接和查询以按年过滤文章,例如按2009并返回2009年创建的所有文章.谢谢.
您可以向模型添加范围
scope :year, lambda{|year|
where(" EXTRACT(YEAR FROM created_at) = ? ", year ) if year.present?
}
Run Code Online (Sandbox Code Playgroud)
并使用控制器中的范围:
@articles = Article.year(params[:year])
Run Code Online (Sandbox Code Playgroud)
显示链接:
<%= link_to art, articles_path( :year => atr) %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
683 次 |
| 最近记录: |