【问题标题】:Apply method using hash.使用哈希应用方法。
【发布时间】:2014-03-26 05:24:35
【问题描述】:

我有一个 ruby​​ 对象,比如说... myobject 和一个哈希值,myhash 的值为 { op1: 'something', op2: 'something2' }。

在ruby中是否有一种方法可以让我做例如,

myobject.the_method(myhash)

这样它就可以像我一样工作,

myobject.op1 'something'
myobject.op2 'something2'

这可以通过 myhash.each 和 myobject.send 来完成,但是有没有一种方法可以做到这一点? Active Support 解决方案是可以接受的。

【问题讨论】:

    标签: ruby activesupport


    【解决方案1】:

    Active Support 中没有一种方法可以做到这一点。我推荐eachsend

    hash.each do |method, arg|
      obj.public_send(method, arg)
    end
    

    【讨论】:

    • 还有public_send,它只会调用公共方法。
    • 谢谢@blom!我总是忘记public_send
    猜你喜欢
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 2016-10-04
    • 2012-10-09
    • 2015-08-14
    • 2013-07-27
    相关资源
    最近更新 更多