有人可以通过DelegateClass提供一些关于何时使用委托(delegate)的见解吗?(例如Seller)以及何时在ruby中使用类继承(例如Seller)?classSeller当我查看Github上的RubyonRails源代码时,我发现了很多usesofDelegateClass. 最佳答案 有一些差异可以帮助深入了解使用哪种方法。1)您可以安全地委托(delegate)给基元(例如String),但不能总是安全地从它们继承如果您在Hash或String或Fixnum之上构建,使用DelegateClass会更安全>
可能我遗漏了一些简单的东西,但我不明白如何使用Ruby的DelegateClass方法,我的意思是什么时候使用它而不是SimpleDelegator类(class)。例如,以下所有内容的工作原理几乎相同:require'delegate'a=SimpleDelegator.new([0])b=DelegateClass(Array).new([0])c=DelegateClass(String).new([0])a[0,1]pb#=>[0,2]pc#=>[0,3]请注意,将哪个类传递给DelegateClass似乎并不重要。 最佳答案
使用rails3.2.8我有一个带有几个属性的模型设置classMyModel我有另一个使用上述作为委托(delegate)类的类设置classMyModelPresenter当我像这样创建一个新的MyModelPresenter时:MyModelPresenter.build(Date.today,{:foo=>1})我得到以下回复NoMethodError:undefinedmethod`foo='for#from/Users/me/.rbenv/versions/ree-1.8.7-2011.03/lib/ruby/gems/1.8/gems/activemodel-3.2.8/