Ruby on 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のバージョン指定しましょう。

僕の場合、Railsのバージョンが5で、この動作をしないとコントローラーを作れないので止むを得ずといった動作。

Gemファイルの

という記述を

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

編集が終わったら

 

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

準備ができたので、コントローラーを作っていきましょう。

で、wordsコントローラーを作ってみました。そして、そいつに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

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

 

それでは!

Lin

 

【参考記事】


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



もう1本読んでみる