我对 Ruby 和 rails 还很陌生,所以我不太确定如何“以正确的方式”做事,但我有几种来自 Rspec 的方法(get、post、put、delete),我想将它们传递到数组中所以我可以遍历它们以每次执行相同的代码。我认为这很容易,但我不知道该怎么做。
有谁知道这是否可能,良好的做法,以及如何做到这一点?
我对 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 也是最佳实践,除非您实际上是在尝试调用私有方法。