Ruby on Railsで検索・置換アプリを使ってみた


Railsで検索・置換アプリは作れる?

Railsで作ってみたかったのが、

ある文章から「あるキーワード」を検索して別の何かに置き換える

というアプリ。

よくワード系のソフトで実装されている、

検索・置換

に特化したやつですね。

 

僕自身、この「検索・置換」を重宝していて、音声入力で文章を書くときや、imgタグのalt属性に一括でキーワードを挿入するときに頻繁に使っていたのです。

ただ、検索・置換のためにいちいちドキュメントを開くのはめんどくさい・・・・!

 

そこで、「検索・置換」だけのアプリをRailsで作れるか挑戦してみたところ、なんとか完成できたので、その方法をまとめておこうと思います。

Image from Gyazo

 

 

Ruby on Railsを使った検索・置換アプリの作り方

今回のRailsの開発の環境は次のようになっています。

  • Railsのバージョン:5.0.7.2
  • Rubyのバージョン:2.3.1

 

アプリを作成する

まずはRailsアプリの作成からですね。

今回はreplacerというアプリを作りたいので、

でオッケー。

作成したらアプリフォルダのディレクトリに移動します。

 

splite3のバージョンを指定

続いて、splite3のバージョン指定しましょう。

Gemファイルの

という記述を

に編集してバージョンを指定してあげましょう。

編集が終わったら

僕の場合、Railsのバージョンが5で、コントローラーを作るために必要でした

 

 

コントローラーを作成する

コントローラーを作っていきましょう。

今回はwords.controller.rbというコントローラーを作ってみました。

そして、そいつにsearchというアクションも追加しました。

 

ビューファイルを作成する(フォーム作成)

あとはビューファイルの作成ですね。

今回はsearch.html.erbというファイルを作成してみました。

 

このファイルには、

  1. 検索ワード
  2. 置換ワード
  3. キーワードを置換するテキスト

を入力する3つのフォームが含まれていますね。

 

ルーティング設定

後はルーティング。

トップページのルートディレクトリに検索フォーム、さらに置換結果を表示するようにします。

 

コントローラーを編集する

先ほど作成したコントローラーを編集します。

 

ビューファイルのフォームから得た3つの値をparmasで取得して、それを@outputというクラス変数に代入します。

そして、その@outputを Ruby の string 型メソッドの gsub!を使って、正規表現にマッチした文字列を置換します。

このメソッドは、

  • 第1引数:正規表現
  • 第2引数:置換したい文字列

を入れます。第1引数のように、スラッシュで囲んでやると、正規表現のオブジェクトができるようですね。

 

ビューファイル編集(出力結果表示)

出力を表示するためのページをビューファイルで作っていきます。

<textarea>タグで コントローラーで@outputを挟んでやれば、こんな感じでコピーしやすいように出力できたと思います。

 

 

さあ、Railsで検索・置換アプリを作ってみよう

ここまでやってやると、

検索・置換アプリが作れたと思います。

例えば、

  • 検索ワード:lancer
  • 置換ワード:sworder
  • 検索対象:freelancer

とやってやると、「freesworder」と出力されるわけです。

Image from Gyazo

 

今度はこれを応用し、imgタグのalt属性に一括でキーワードを追加できるアプリを作っていきたいと思います。

 

それでは!

Lin

 

【参考記事】

Pocket
LINEで送る

コメントはこちらからお願いします!



もう1本読んでみる