gpt4 book ai didi

ruby-on-rails - 将变量传递给模型 after_initialize 方法

转载 作者:数据小太阳 更新时间:2023-10-29 07:51:20 26 4
gpt4 key购买 nike

我有以下(高度简化的)模型,它使用 will_paginate

class Search < ActiveRecord::Base

attr_reader :articles

def after_initialize
@articles = Article.paginate_by_name name, :page => 1
end

end

我的表演 Action 中的 Controller 代码是

@search = Search.new(params[:search])

一切正常,但请注意我将页码硬编码为 1,问题是将 params[:page] 值传递给 after_initialize 方法,有人可以建议一种优雅的方法吗?

谢谢

最佳答案

在初始化方法中添加一个页面参数(或者更好的选项散列参数):

class Search
def initialize(search, options = {})
@options = options
end

def after_initialize
@articles = Article.paginate_by_name name, :page => @options[:page]
end
end

然后在你的 Controller 中:

@search = Search.new(params[:search], :page => params[:page])

如果愿意,您甚至可以为选项散列提供默认值。

关于ruby-on-rails - 将变量传递给模型 after_initialize 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3255525/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com