Low*_*ain 16 named-scope ruby-on-rails will-paginate
我正在使用will_paginate进行分页,到目前为止一直运行良好,除了这一件事.
例如,如果我尝试对范围进行分页
class User < ActiveRecord::Base
named_scope :scope, lambda { etc }
end
User.scope.paginate({:page => params[:page], :per_page => 10})
Run Code Online (Sandbox Code Playgroud)
这将告诉我paginate是一个未定义的方法.我宁愿不仅仅为这个范围使用第二种解决方案,我能在这做些什么吗?
Lowgain,klew的版本应该开箱即用.在您的版本中,您应该写:
User.scope.paginate :page => params[:page], :per_page => 10
Run Code Online (Sandbox Code Playgroud)
我更喜欢另一种分页方法.它允许使控制器更加干净,并在模型级别封装分页,例如:
class Property < ActiveRecord::Base
named_scope :all_properties, lambda {{ :order => "name asc" }}
def self.admin_properties(page = 1)
self.all_properties.paginate(:page => page, :per_page => Settings.admin.per_page)
end
end
Run Code Online (Sandbox Code Playgroud)
在控制器中非常清晰的代码:
class Admin::PropertiesController < Admin::AdminController
def index
@properties = Property.admin_properties(params[:page])
end
end
Run Code Online (Sandbox Code Playgroud)
ps:Settings.admin.per_page - 这是Searchlogic设置.
| 归档时间: |
|
| 查看次数: |
6261 次 |
| 最近记录: |