Ruby-如何在循环中从一组方法名称中执行方法



我对Ruby和rails还很陌生,所以我不太确定如何"以正确的方式"做事,但我有几个来自Rspec的方法(get、post、put、delete),我想把它们传递到数组中,这样我就可以在它们上循环,每次执行相同的代码。我以为这会很容易,但我不知道怎么做。

有人知道这是否可能,良好的做法,以及如何做到吗?

['get', 'post', 'put', 'delete'].each {|m| obj.send(m) }

在Ruby项目中,我经常看到这样做。

  class Message
    def method1
      #something
    end
    def method2
      #something
    end   
  end
  message = Message.new
  methods = [ 'method1', 'method2' ]
  methods.each{ |method| message.send(method) }

或者,当您声明方法时,您可以使用符号而不是字符串,因为这是更惯用的

最好使用public_send而不是send,除非您实际尝试调用私有方法。

相关内容

  • 没有找到相关文章

最新更新