如何从Rails关联中取消定义/删除方法

时间:2012-09-01 15:48:06

标签: ruby-on-rails ruby ruby-on-rails-3

在Rails中定义关联时,它会为您创建一些关联方法。例如,请考虑以下事项:

class Person
  has_many :friends
end

您获得的方法之一是person.friends.clear

如何删除此方法,person.friends.clear会引发NoMethodError

注意:我尝试过一些事情,包括undef_methodremove_method但没有运气。请仅提供已知的答案,而不是猜测。

1 个答案:

答案 0 :(得分:2)

虽然我自己没有尝试,但可以检查以下是否有效

has_many :friends do
    def clear 
       raise NoMethodError, "Some reason text"
    end     
end