Rails:将方法设为私有的主要原因是什么?

Chi*_*Kan 3 ruby methods private ruby-on-rails

如果end_user无法访问应用程序的源代码,为什么我们仍然需要将某些方法设为私有?

我正在阅读使用Rails的Pragmatic Agile Web开发,我无法理解为什么我们需要将以下方法设为私有(即使在阅读了解释之后):

private
  def current_cart Cart.find(session[:cart_id])
   rescue ActiveRecord::RecordNotFound 
   cart = Cart.create 
   session[:cart_id] = cart.id
   cart
   end 
end
Run Code Online (Sandbox Code Playgroud)

它说它永远不会允许Rails将它作为一个动作提供,但作为一个编码器,为什么我自己会这样做呢?

Jan*_*nne 6

正如你所说,可能没有外部理由让它变得私密.但是,它也会阻止您 - 或其他人使用您的代码 - 意外地使用您不应该使用的方法.

如果愿意,可以将其视为对自己未来行为的理智检查.