私有方法是我们耳熟能详的一个词,我们时常会用到,不管是模仿还是自己的领悟。 比如:
class Project
def find(id)
end
private
def user
current_user
end
end
user 就是 Project 的一个私有方法(instance method)
private
def self.user current_user end end
测试发现这并不能成功!这个时候其实我们应该注意到一点,私有方法的一个特点就是不能显示的调用,而我们这里明显一开始就在违背这个原则,所以,这显然是有问题的。那么我们比照私有实例方法的定义,我们需要把当前类看做是一个实例,然后进入到其类中,简单讲就是要进入到单件类中去定义 private 方法。
```ruby
class Project
def find(id)
end
class << self
private
def user
current_user
end
end
end