Я делаю некоторое отражение и сталкивался с неожиданным дорожным блоком.Рубиновый метод, который возвращает себя
Есть метод объекта в Ruby (или рельсы), который возвращает себе
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>
Является ли это встроенный? Или мне нужно расширить объект (Это всегда заставляет меня нервное открытие до объекта):
class Object
def itself
self
end
end
А потом так:
ruby-1.9.2> o.send :itself
=> #<Object:0x00000104750710>
Ok, некоторый фон на то, что я пытаюсь достичь , У меня есть универсальный помощник таблицы в моей рельсы приложение, и вы называете, если так:
render_list @person, [{field: :name, link_to: :itself},
{field: {address: :name}, link_to: :address}]
Я изо всех сил на правильном пути, чтобы позвонить :itself
- но я думаю, что мой патч путь ,
Непонятно, что вы пытаетесь сделать здесь. Насколько я знаю, 'self' - это не совсем метод, но ссылка на текущий контекст. Вы ожидаете, что 'o.self' будет отличаться от' o' каким-то образом? – tadman
Возможно, люди могли бы дать более полезный ответ, если бы вы дали пример своей конечной цели? –
@brett - добавлено – Jonathan