Web + Life Hack

〜True But Useless〜

【ruby】【rails】文字列チェックで用途が違うから覚えたいメソッド。

今回、
検索文字列をparamsで渡した際に
paramsの中にある「特定の文字列」が含まれているかを
チェックする際に勉強になったことをまとめたいと思います。

まず

「indexメソッド」

2.0.0-p247 :020 > str = "エステ"=> "エステ" 

2.0.0-p247 :021 > str.index("エ")
=> 0 
2.0.0-p247 :022 > str.index("ス")
 => 1 
2.0.0-p247 :023 > str.index("照") 
=> nil

次に

「includeメソッド」

p247 :024 > str.include?("エ") 
=> true 

2.0.0-p247 :025 > str.include?("ス") 
=> true

p247 :026 > str.include?("照") 
=> false 


ちなみにnilの場合だと

2.0.0-p247 :029 > str = "" => ""

2.0.0-p247 :030 > str.index("エ") 
=> nil
 
2.0.0-p247 :031 > str.include?("エ") 
=> false 

「ある文字列」を含んでいるかどうかが知りたいのか、
「ある文字列」の位置が知りたいのかでどのメソッドを使うか変わってきます。


ちなみに
オブジェクト指向的に言えばコントローラー側で判定するべきなんだけど
それ用のクラスがないため
今回はview側に書いてしまいました。。。。
新規で作る際はもっと良い設計に。


参考サイト
http://www.rubylife.jp/ini/string_class/index8.html


個人的な写真:

現在、絶賛ハッカソン中です。
http://instagram.com/p/hGbpf_wYm1/
Instagram