我正在做一些反思,碰到一个意想不到的路障。
在ruby(或rails)中有一个返回自身的对象方法
ruby-1.9.2> o = Object.new
=> #<Object:0x00000104750710>
ruby-1.9.2> o.class
=> Object
ruby-1.9.2> o.send :self
NoMethodError: undefined method `self' for #<Object:0x00000104750710>
我想要的是
ruby-1.9.2> o.send :self
=> #<Object:0x00000104750710>
这是内置的吗?或者我需要扩展Object(它总是让我紧张的开放对象):
class Object
def itself
self
end
end
那么这样呢
ruby-1.9.2> o.send :itself
=> #<Object:0x00000104750710>
好的,我想要实现的一些背景。我的rails应用程序中有一个通用的表助手,如果是这样,你就调用:
render_list @person, [{field: :name, link_to: :itself},
{field: {address: :name}, link_to: :address}]
我正在以正确的方式呼吁:本身 – 但我在想我的补丁是要走的路。
如果您使用Ruby版本> = 1.9,您可以使用带有空块的tap方法:
Object.tap{} => Object
Object.new.tap{} => #<Object:0x5f41334>
翻译自:https://stackoverflow.com/questions/6308470/ruby-method-that-returns-itself
转载注明原文:ruby-on-rails – 返回自身的Ruby方法