ruby 语法规定,如果类的方法不加说明,则默认为public, 其中initialize 方法除外,他是private.
但下面的代码,两个方法则都是private.
private
def find_cart
session[:cart] ||= Cart.new
end
def add_to_cart
@cart = find_cart
product = Product.find(params[:id])
@cart.add_product(product)
end
解决方案有两种:
1把第二个方法放到private的上面。
2 给第二个方法加上public.
note:
ruby约定的风格是private方法一律放在类的尾部。