嘿。我在我的控制器索引查询中反复使用以下行。创建一个新的应用程序方法来重用它是否有意义?关于如何提取这个并且可能将:per_page
属性传递给变量参数的任何建议?
paginate :page => params[:page], :per_page => 12
谢谢你的时间!
答案 0 :(得分:1)
就像它在will_paginate README ...
中所说的那样您可以这样定义:
class Post < ActiveRecord::Base
cattr_reader :per_page
@@per_page = 50
end
......或者像这样:
class Post < ActiveRecord::Base
def self.per_page
50
end
end
答案 1 :(得分:1)
您绝对可以在应用程序控制器中执行此操作。我认为既然它是单行的,你在按键和文字方面节省的很少。不过,如果你想这样做,你可以在application_controller.rb文件
中输入这样的东西# optional-- this lets you use the method in views as well
helper_method :paginate_helper
...
# optional, but safer
protected
def paginate_helper(obj_to_paginate, page_limit)
obj_to_paginate.paginate :page => params[:page], :per_page => page_limit
end
取决于您将使用此帮助程序的范围,您可能需要添加有关params [:page]的if语句。 paginate将使用:page =&gt;没有,但如果params不存在(例如你正在做nil[]
,尝试将nil视为数组),你可能会得到params []的错误。