Ruby:如何根据类名获取类,如何根据字段名称获取对象的字段?

Mis*_*hko 1 ruby

问题1

如何将类命名为字符串?

例如,说Productclass有do_something方法:

str = "product"
<what should be here based on str?>.do_something
Run Code Online (Sandbox Code Playgroud)

问题2

如何在字段名称为字符串的情况下获取对象的字段?

例如,说Productclass有price字段:

str = "price"
product = Product.new
product.<what should be here based on str?> = 1200
Run Code Online (Sandbox Code Playgroud)

noo*_*odl 5

雅各布对第一个问题的回答假设您正在使用Rails并且如果您正在使用它将会正常工作.如果您不是,您可以Kernel::const_get(str)通过名称调用查找现有常量.

send是一种纯净的红宝石.虽然没有必要实习你的字符串send(将它们转换为符号),但直字符串工作正常.