Ruby on rails 重构将对控制器查询中的属性进行分页
嘿。在我的控制器索引查询中,我反复使用下面这一行。创建一个新的应用程序方法来重用它有意义吗?有没有关于如何提取该属性并可能将Ruby on rails 重构将对控制器查询中的属性进行分页,ruby-on-rails,ruby-on-rails-3,refactoring,helper,Ruby On Rails,Ruby On Rails 3,Refactoring,Helper,嘿。在我的控制器索引查询中,我反复使用下面这一行。创建一个新的应用程序方法来重用它有意义吗?有没有关于如何提取该属性并可能将:per_page属性传递给变量参数的建议 paginate :page => params[:page], :per_page => 12 谢谢你的时间 就像在 您可以这样定义它: class Post < ActiveRecord::Base cattr_reader :per_page @@per_page = 50 end class
:per_page
属性传递给变量参数的建议
paginate :page => params[:page], :per_page => 12
谢谢你的时间 就像在
您可以这样定义它:
class Post < ActiveRecord::Base
cattr_reader :per_page
@@per_page = 50
end
class Post < ActiveRecord::Base
def self.per_page
50
end
end
class Post
。。。或者像这样:
class Post < ActiveRecord::Base
cattr_reader :per_page
@@per_page = 50
end
class Post < ActiveRecord::Base
def self.per_page
50
end
end
class Post
您完全可以在应用程序控制器中执行此操作。我认为,由于它是一行程序,您在击键和文本方面节省的很少。不过,如果您想这样做,可以在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=>nil,但是如果params不存在,您可能会得到params[]的错误(即,您将执行
nil[]
,尝试将nil视为数组)。我的模型中已经有了第一个。但这对我发布的问题没有帮助。