迭代序列并一次更改一个对象的最佳方法(Ruby)

Val*_*yev 2 ruby

我是红宝石的新手,觉得我仍然以C的方式做很多事情:-).假设您有一个对象数组(问题:has_many =>:answers).我想迭代所有答案,如果某些答案符合条件,请更改答案属性.目前我正在做如下:

def iterate_and_do_stuff
   for (a in self.answers)
      if(a.somecriteria==true)
         a.some_attr=some_val
      end
   end
end
Run Code Online (Sandbox Code Playgroud)

这样做的其他方法是什么?块,循环等?

请adivce.

谢谢.

Pes*_*sto 12

使用Array#each:

self.answers.each {|a| a.some_attr = some_val if a.some_criteria}