我正在查看示例Rails应用程序并看到一些奇怪的事情。对我来说很奇怪,因为我过去的经验是用C#。
所以在ApplicationController
我有一个像这样的“私人”方法:
private
def current_cart
Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
cart = Cart.create
session[:cart_id] = cart.id
cart
end
然后在orders_controller
课程中我有另一种方法,在它的主体中它说的是:
def new
@cart = current_curt
// ....
end
发生什么事了?这是私人的,但我们可以访问它?我们在访问它之前不需要创建它的实例吗?有人可以谈谈控制器中的方法如何在Rails中协同工作?
答案 0 :(得分:2)
是控制器的一个实例,由框架按请求实例化。
是的,子类可以访问该方法(正如它将显示的运行)。