當以如下方式定義method時,代表這個method是要給class的instance使用
class User def say_hello puts "Hello" end end所以當執行User.say_hello時就會發生找不到method的情況,但在以下情形會是正常的:
user = User.new user.say_hello =>"Hello"
所以如果一個method希望能被class所使用,必須以以下方式定義:
class User def User.say_hello puts "Hello" end end或是
class User def self.say_hello puts "Hello" end end當然也可以用extend從module中mixin進來
沒有留言:
張貼留言