【发布时间】:2014-09-11 20:02:02
【问题描述】:
我正在关注《使用 Rails 进行敏捷开发》一书(http://www.amazon.com/Agile-Development-Rails-Pragmatic-Programmers/dp/1934356549)。在第 9 章中,它在应用程序控制器中定义了一个私有方法:
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
它说“这使得这个方法只对其他控制器可用,特别是它阻止了 Rails 让它作为控制器上的一个动作可用。”我想知道为什么这会使其他控制器可以使用私有方法?我知道私有方法只能在同一个类中访问。这背后有什么魔力吗?
【问题讨论】:
标签: ruby-on-rails