gpt4 book ai didi

ruby - 为什么使用 Rails public_method?

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

我正在阅读 Avdi Grimm 的书“Objects in Rails”,他使用了 public_method 方法,但我不明白为什么。这是代码示例:

class Blog
# ...
attr_writer :post_source
# ...
private
def post_source
@post_source ||= Post.public_method(:new)
end
end

为什么要调用 Post.public_method(:new) 而不是 Post.new?这些方法有什么不同还是完全一样?感谢您的帮助。

最佳答案

Post.new

等同于

Post.public_method(:new)

前者是方法 new 的调用,默认情况下,它会创建一个新的 Post 对象。然而,后者不会立即调用new。它只是准备稍后调用它。我还没有读过那本书,但是如果你查看相关的源代码,你会看到这一行

@post_source.call # maybe some params are passed here

这是 Post#new 最终被调用的地方。

文档:Object#public_method , Object#method .

关于ruby - 为什么使用 Rails public_method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15022621/

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