我对Ruby和rails很新,所以我不太确定如何以“正确的方式”做事,但我有几个来自Rspec的方法(get,post,put,delete)我想通过到一个数组,所以我可以循环它们每次执行相同的代码。 我认为这很容易,但我无法弄清楚如何去做。
有谁知道这是否可行,良好做法以及如何做到这一点?
答案 0 :(得分:4)
['get', 'post', 'put', 'delete'].each {|m| obj.send(m) }
我看到在Ruby项目中经常这样做的事情。
答案 1 :(得分:0)
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,除非您实际上尝试调用私有方法。