我知道如何设置类方法,但如何动态设置实例方法?

时间:2010-08-27 01:29:36

标签: ruby-on-rails ruby instance-methods dynamic-method

  • 我问过关于类方法的上一个问题,但我真的想了解如何对例如方法这样做。谢谢! =)

下面的代码为给定数组设置类方法:

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 个答案:

答案 0 :(得分:4)

self.send(:method, value)

答案 1 :(得分:2)

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