与雷

2011-08-18 61 views
7

月分页我想分页按月职位,我在Post模型与雷

class Post 
    include Mongoid::Document 
    include Mongoid::Timestamps 

    scope :by_month, lambda {|end_date| Post.order_by(:created_at => :asc).where(:created_at.gte => (end_date.to_date.beginning_of_month), :created_at.lte => (end_date.to_date))} 
end 

添加下列范围在我的控制,我把

def show 
    @posts = Post.by_month(Time.now).page(params[:page]).per(20) 
end 

鉴于

<%= paginate @posts, :theme => 'month_theme' %> 
<%= render @posts %> 

问题:

  1. 分页不按月工作,我想在一个页面中显示一个月的所有结果,通过params [:month] = 2或params [:month] = Feb取代params [:page]
  2. 我认为“2011年8月”,而不是1,2
  3. 环月和今年一样,当你转到前面,而在“2011年1月”,它会转到“2010年12月”

回答

7

我想这是不是一个真正的事的分页。处理查询的params [:month]值与页面偏移切换有些不同。你可能不需要一个分页库。

如何简单地创建这样的链接?

控制器:

@posts = Post.by_month(Time.parse(params[:month]) || Time.now) 

观点:

<% Post.only(:created_at).map {|p| p.created_at.to_date.beginning_of_month}.uniq.sort.each do |m| -%> 
    <%= link_to_unless_current m, :month => m %>&nbsp; 
<% end -%> 

当然你也可以在需要时此查询与正常分页结合起来。但在这种情况下,分页链接不应与月份链接混在一起。