此问题已在此处有答案:
How to call methods dynamically based on their name? [duplicate](5个答案)
6年前关闭。
我有一个Ruby项目,在那里我以编程方式获得我需要访问的哈希中的键的名称。我可以通过以下方式访问所需的字段:
current_content = entry.fields[property_name.to_sym]
但是,似乎有些内容只能使用属性语法访问:
m.title_with_locales = {'en-US' => 'US Title', 'nl' => 'NL Title'}
既然我事先不知道“title”,那么我如何以编程方式进行调用呢?例如:
m.${property_name}_with_locales = {'en-US' => 'US Title', 'nl' => 'NL Title'}
2条答案
按热度按时间wsewodh21#
您可以使用#send以编程方式访问属性:
如果需要访问setter并传入值,可以执行以下操作:
az31mfrm2#
除了@gwcodes写的
send
之外,还有eval
和call
。as shown on this blog post
call
比send
快一点。