0

对 Rails 来说有点新。

您将如何简化、美化此方法:

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

如您所见,它很丑陋。如何删除顶部的索引定义和底部的索引以返回 - Ruby 方式?

4

1 回答 1

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" }
于 2012-07-22T19:49:32.297 回答