在Rails中,我使用了许多具有自定义方法的模型,例如create_new!
,它们取代了内置方法(通常用于包装其他功能,而不必使用过滤器,我试图避免使用过滤器)。 / p>
因此,我想禁用(或更优雅地,私有化)某些方法,例如create
或save
。是否有可能将某些方法设为私有而没有任何令人讨厌的副作用?
答案 0 :(得分:0)
您可以使用alias_method函数重命名要混淆的方法,然后重新定义该方法以抛出错误或异常。例如,
alias_method :save_private, :save
def save(*)
ActiveSupport::Deprecation.warn("Method is deprecated and disabled, please use save_new")
false
end