我对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,除非您实际尝试调用私有方法。