Ruby on rails 应用程序控制器rails中的私有方法
我正在阅读《Rails的敏捷开发》一书()。在第9章中,它在应用程序控制器中定义了一个私有方法:Ruby on rails 应用程序控制器rails中的私有方法,ruby-on-rails,Ruby On Rails,我正在阅读《Rails的敏捷开发》一书()。在第9章中,它在应用程序控制器中定义了一个私有方法: class ApplicationController < ActionController::Base protect_from_forgery private def current_cart Cart.find(session[:cart_id]) rescue ActiveRecord::RecordNotFound car
class ApplicationController < ActionController::Base
protect_from_forgery
private
def current_cart
Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
cart = Cart.create
session[:cart_id] = cart.id
cart
end
end
class ApplicationController
它说“这使得这个方法只对其他控制器可用,特别是它阻止Rails将它作为控制器上的一个动作来使用。”我想知道为什么这会使一个私有方法对其他控制器可用?Iknow私有方法只能在同一类中访问。这背后有什么魔力吗?ruby中的私有方法的工作方式与其他语言中的不同。在ruby中,我们可以从声明私有方法的类以及该类的所有子类中调用私有方法。这解释了为什么您可以在ApplicationController中声明私有方法并使其在所有其他控制器中可用,因为所有其他控制器都是从ApplicationController继承的 关于更多信息,我建议研究ruby访问控制。首先,有一篇很棒的文章
希望这有帮助 ruby中的私有方法的工作方式与其他语言中的不同。在ruby中,我们可以从声明私有方法的类以及该类的所有子类中调用私有方法。这解释了为什么您可以在ApplicationController中声明私有方法并使其在所有其他控制器中可用,因为所有其他控制器都是从ApplicationController继承的 关于更多信息,我建议研究ruby访问控制。首先,有一篇很棒的文章 希望这有帮助