gpt4 book ai didi

ruby-on-rails - 什么是 before_create、validates_presence_of、has_many 等?

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

我理解这些陈述的作用,但不知道如何引用它们。它们存在于一个类中,在该类的方法之外,并执行各种功能。

它们统称为什么?

最佳答案

这些方法实际上只是类方法。试试这个:

class Test
def self.before_create
puts "before_create"
end

before_create
end

您提到的具体用例 - Rails DSL 方法,例如 before_create , 仅在 class 内可用body — 通常被称为类宏。 Ruby 的元编程能力为您提供了多种构建它们的方法。一个简单的方法是将它们设为私有(private):

module Foo
private

def before_create
puts "before_create"
end
end

class Bar
extend Foo

before_create
end

before_create现在可以在类主体内部访问,但不能从外部访问:

Bar.before_create
NoMethodError: private method `before_create' called for Bar:Class

关于ruby-on-rails - 什么是 before_create、validates_presence_of、has_many 等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28450937/

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