我想按月对帖子进行分页,所以我在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 %>
问题:
>分页不按月工作,我想在页面中显示一个月的所有结果,用params [:month] = 2或params [:month] = Feb替换params [:page]
>我如何查看’2011年8月’而不是1,2
>循环月份和年份,就像你在’2011年1月’中转到之前一样,它将转到’2010年12月’
解决方法
我想这不是一个分页问题.处理查询的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 %> <% end -%>