Cor*_*ley 11 ruby-on-rails ruby-on-rails-3
好的,我确信我的问题有一个简单的解决方案.这是我的controller.rb
代码:
@photos = Photo.paginate :page=>params[:page], :order => "date DESC", :per_page => 2
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我的排序顺序没有受到尊重.分页功能正常(例如每页的数量)但订单根本不起作用.我喜欢用不同的值尝试ASC
和DESC
以及不同领域无济于事.首先移动"订单"后,这是我的整个控制器功能:
def index
@photos = Photo.all
@photos = Photo.order("date DESC").paginate(:per_page => 12, :page => params[:page])
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @gallery }
end
end
Run Code Online (Sandbox Code Playgroud)
我以前在Rails 1中完美地工作了,我无法用will_paginate gem来解决这个问题.正如我所提到的,:per_page
参数正在运行,所以我知道分页正在运行,我只是没有排序而且没有错误.我将不胜感激任何帮助!
mis*_*lav 17
您有一个默认订单(通过default_scope
),您无法使用该order()
方法覆盖,只需附加更多订购规则.但是,您可以重置订单:
@photos = Photo.reorder("date DESC").page(params[:page]).per_page(12)
Run Code Online (Sandbox Code Playgroud)
顺便说一句,你要删除@photos = Photo.all
控制器动作.如果你要获取一组分页的照片,那么首先从数据库中获取它们是没有意义的.
在回答了其他一些用户的问题后,我能够解决这个问题。在审查了我的“照片”模型后,应@mislav的要求,我意识到它包含:
default_scope :order => 'date'
Run Code Online (Sandbox Code Playgroud)
删除此 default_scope 后,排序开始正常运行。问题解决了。
归档时间: |
|
查看次数: |
8603 次 |
最近记录: |