0

在 Rails 中,我使用了许多具有自定义方法的模型,例如create_new!替换内置方法(通常是为了包装附加功能而不必使用过滤器,我试图避免这种情况)。

正因为如此,我想禁用(或更优雅地,将其设为私有)一些方法,例如createor save。是否有可能将某些方法设为私有而没有任何讨厌的副作用?

4

1 回答 1

0

您可以使用 alias_method 函数重命名您想要混淆的方法,然后重新定义该方法以引发错误或异常。例如,

alias_method :save_private, :save

def save(*)
  ActiveSupport::Deprecation.warn("Method is deprecated and disabled, please use save_new")
  false
end
于 2013-10-07T15:43:45.183 回答