Rails如何美化这个块

时间:2012-07-22 19:37:07

标签: ruby-on-rails ruby block

Rails的新手。

你如何简化,美化这种方法:

def find_index
   index = 0
   @ipn.each {|p|
       index = 4 if p = "new" #this is just a dummy line
   }
   index
end 

正如你所看到的,它很难看。如何删除顶部的索引定义和底部的索引以返回 - Ruby方式?

1 个答案:

答案 0 :(得分:4)

我想你想要这个方法: http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-find_index

def find_index
  @ipn.find_index{|p| p == "new" }
end

我还将变量名'@ ipn'更改为'@ipns',因为它似乎是一个可枚举的。

为了避免混淆,我可能会将方法重命名为'find_ipn_index',所以它看起来像这样:

def find_ipn_index
  @ipns.find_index{|p| p == "new" }
end

或者,如果self.ipns可用,请不要为此定义新方法,只需调用:

self.ipns.find_index{|p| p == "new" }