2013-10-02 35 views
-1

在我的代码,我有ActiveRecord::Base对象的数组,并保存它们,例如,我会做这样的事情:迭代没有明确的块成语

obj_list = [ar_obj1, ar_obj2, ar_obj3] 
obj_list.each { |obj| obj.save! } 

这或许会是很干爽代替地说:

obj_list.each.save! 

但是,我看不出如何做到这一点。

+1

尝试使用[搜索](http://stackoverflow.com/questions/6496931/apply-method-to-each-elements-in-array-enumerable) – ostapische

+2

这可能是一个好主意来包装交易中的'save!'调用。 – Stefan

回答

2

您可以在这里使用Symbol#to_proc快捷方式。但它仍然是一个块,只有隐藏。

obj_list.each(&:save!) 
+0

谢谢 - 这正是我正在寻找的!我认为这种形式对于休闲读者来说更具可读性。 –