Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何从Rails关联中取消定义/删除方法_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

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

Ruby on rails 如何从Rails关联中取消定义/删除方法,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,在Rails中定义关联时,它会为您在该关联上创建一些方法。例如,考虑以下内容: class Person has_many :friends end 其中一种方法是person.friends.clear 如何删除此方法,使person.friends.clear会引发NoMethodError 注意:我尝试了一些方法,包括undef\u方法和remove\u方法,但运气不佳。请只提供已知的答案,不要猜测。虽然我自己没有尝试过,但可以检查一下以下方法是否有效 has_many :frien

在Rails中定义关联时,它会为您在该关联上创建一些方法。例如,考虑以下内容:

class Person
  has_many :friends
end
其中一种方法是
person.friends.clear

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


注意:我尝试了一些方法,包括
undef\u方法
remove\u方法
,但运气不佳。请只提供已知的答案,不要猜测。

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

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

是的,这确实有效。但是,我不想手动提高。像这样的东西会很酷(如果它起作用的话):。我可能不得不这样做:(嗯,那很酷。肯定有办法……我需要自己尝试一下:)