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 に答える