gpt4 book ai didi

ruby-on-rails - 创建新的 ActiveRecord 对象时如何调用方法

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:54 25 4
gpt4 key购买 nike

我正在尝试将我用纯 Ruby 编写的算法集成到 Rails 应用程序中。我的 Ruby 项目的主类可以是资源。

当它在 Ruby 中初始化时,我立即在 initialize 方法中调用了一个函数:

def initialize(keyword)
@keyword = keyword
@sources = get_titles_of_sources
end

在 Rails 中,当我创建新对象时,我通常没有或至少没有看到 initialize 方法。

@user = User.new(attribute1: value1, attribute2: value2)

但是这种风格不允许我在创建新对象时自动调用方法。

最佳答案

鉴于您在评论中所说的内容,我觉得您应该避免回调(顺便说一句,如果可以的话,您应该始终避免回调...)。

无论如何,我建议您创建一个 build 方法,例如:

 class User 
def self.build(props = {})
new(props).tap do |user|
#your code on initialize
end
end
end

我通常倾向于将 build 方法移动到构建器中。但它会让你创建一个额外的 class

关于ruby-on-rails - 创建新的 ActiveRecord 对象时如何调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31991008/

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