ruby-on-rails – 返回自身的Ruby方法

我正在做一些反思,碰到一个意想不到的路障。

在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>
http://stackoverflow.com/questions/6308470/ruby-method-that-returns-itself

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ruby-on-rails – 返回自身的Ruby方法