将变量传递到模型 after_initialize 方法
我有以下(高度简化的)模型,它使用 will_paginate
class Search < ActiveRecord::Base
attr_reader :articles
def after_initialize
@articles = Article.paginate_by_name name, :page => 1
end
end
并且我的显示操作中的控制器代码是
@search = Search.new(params[:search])
这一切都工作正常,但请注意我将页码硬编码为 1,问题是将 params[:page] 值传递到 after_initialize方法,有人可以建议一种优雅的方法吗?
谢谢
I have the following (heavily simplified) model, that uses will_paginate
class Search < ActiveRecord::Base
attr_reader :articles
def after_initialize
@articles = Article.paginate_by_name name, :page => 1
end
end
and the controller code in my show action is
@search = Search.new(params[:search])
This all works fine, but notice i hard coded the page number to 1, problem is passing params[:page] value into the after_initialize method, can anyone suggest an elegant way to do this please?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将页面参数(或者更好的是选项哈希参数)添加到初始化方法:
然后在控制器中:
如果您愿意,您甚至可以为选项哈希提供默认值。
Add a page parameter (or even better an options hash parameter) to the initialize method:
and then in your controller:
You can even supply default values to the option hash, if you like.