【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
個人的な写真: