Ruby中的私有方法

rai*_*ls8 8 ruby oop ruby-on-rails

Rails控制器的一个例子,它定义了一个私有方法:

class ApplicationController < ActionController::Base
  private
  def authorization_method
    # do something
  end
end
Run Code Online (Sandbox Code Playgroud)

然后,它被用在以下的子类中ApplicationController:

class CustomerController < ApplicatioController
  before_action :authorization_method

  # controller actions
end
Run Code Online (Sandbox Code Playgroud)

如何从其子类调用私有方法?privateRuby中的含义是什么?

小智 13

使用显式接收器无法调用私有方法.但是它们可以被类的任何子类和实例调用.

这里的一个很好的解释public,protectedprivate在Ruby方法.


ndn*_*kov 5

什么private在Ruby中做,不像在其他语言中,是使使方法可以与被称为明确的接收器.

阿卡,你不能打电话some_variable.some_private_method甚至self.some_private_method.

就这些.它们仍然是遗传的.你可以在这里阅读更多.