0

我正在查看一个示例 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 中协同工作吗?

4

1 回答 1

2

每个请求都有一个控制器实例,由框架实例化。

是的,子类可以访问该方法(正如运行它所显示的那样)。

于 2013-01-22T15:11:57.253 回答