Railsは初めてです。
この方法をどのように簡素化し、美化しますか。
def find_index
index = 0
@ipn.each {|p|
index = 4 if p = "new" #this is just a dummy line
}
index
end
ご覧のとおり、醜いです。上部のインデックス定義と下部のインデックスを削除して返すにはどうすればよいですか - Ruby の方法は?
Railsは初めてです。
この方法をどのように簡素化し、美化しますか。
def find_index
index = 0
@ipn.each {|p|
index = 4 if p = "new" #this is just a dummy line
}
index
end
ご覧のとおり、醜いです。上部のインデックス定義と下部のインデックスを削除して返すにはどうすればよいですか - Ruby の方法は?
このメソッドが必要だと思います: 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" }