Я знаю, как устанавливать методы класса, но как я могу установить методы экземпляра на лету?

  • Я задал предыдущий вопрос о методах класса, но я действительно хочу понять, как это сделать, например, для методов экземпляра. Спасибо! знак равно

Код ниже устанавливает методы класса для данного массива:

class Testing

  V4_RELATIONSHIP_TYPES=[1=>2,3=>4]

  V4_RELATIONSHIP_TYPES.keys.each do |key|
    self.class.send(:define_method, "get_#{key}_type".downcase) do
      return GuidInfo.get_or_new(PARAMS, V4_RELATIONSHIP_TYPES[key])
    end
  end
end

#so i can call Testing.get_1_key()

Вопрос: как я могу получить тот же набор методов для экземпляра?

2 ответа

Решение
self.send(:method, value)
class Testing
  V4_RELATIONSHIP_TYPES = { 1 => 2, 3 => 4 }

  V4_RELATIONSHIP_TYPES.each do |key, value|
    define_method("get_#{key}_type".downcase) do
      return GuidInfo.get_or_new(PARAMS, value)
    end
  end
end

# Now you can call Testing.new.get_1_key
Другие вопросы по тегам