joppot

コピペで絶対動く。説明を妥協しない

プログラミング

Rails pluginを使ったgemの作り方[2](rails組み込み編)

投稿日:2015年4月21日 更新日:


fr0h8

概要

みなさんこんにちはcandleです。前回に引き続き、gemの作成をやっていきましょう。
今回はgemを作成したら、それをrailsプロジェクト上で読み込み、動作テストをするところをやります。

前提

前回の記事を読んでいる。
Rails pluginを使ったgemの作り方[1](基本設定編)

Rails pluginを使ったgemの作り方[2](rails組み込み編)

Rails pluginを使ったgemの作り方[3](vendor/assets 読み込み編)
Rails pluginを使ったgemの作り方[4](controller helper編)

railsをある程度使える。


動作テスト用のrailsプロジェクトの作成

gemは単体ではしっかり動いているのか判断がしづらいものです。railsアプリケーションに作成しているローカルのgemを読み込んで、railsで動かしながら、実際に上手くパスが通っているのかや、コントローラーが呼び出されているのかを確認します。

railsプロジェクトを作ります。私はいつも、ホームディレクトリのrailsフォルダにrailsプロジェクトを作ります。gemlibというプロジェクトを作ってみます。

mkdir ~/rails
cd ~/rails
rails new gemlib –skip-bundle
cd gemlib

creategmeli

railsプロジェクトが完成しました。

ローカルのgemを読み込む

まずはrailsプロジェクトのGemfileを開きます。Gemfileにローカルのgemが置かれているパスを記述します。
前回をご覧になった方はgood_itemという自作したgemが以下のパスに作られていると思います。

~/railsgems/good_item/

これをGemfileから読み込んであげます。

適当な場所に以下を加えましょう。

group :development, :test do
  gem 'good_item', path: '~/railsgems/good_item'
end

gemload

保存したら、下のコマンドでインストールします。

bundle install --path vendor/bundle

インストールの途中で以下の様に読み込まれていれば成功です。

getgem

現段階ではgemはなにも作成してないので、どうのこうの出来るわけではないのですが、これでうまくいきそうです。

scaffoldを作成する

次回以降、gem作成をしていくのですが、その動作を確認する為にも、scaffoldを作っておきましょう。scaffoldがあれば、実際にviewやcontrollerをいじって、あれこれできます。

bundle exec rails g scaffold Post title:string description:text

createscaffold

マイグレーションをデータベースに反映させましょう。

bundle exec rake db:migrate

動作確認も含めて、railsサーバを起動して、Post scaffoldを確認します。

bundle exec rails s

以下に移動します。

http://localhost:3000/posts

Gemlibpost

上の画面が問題なく表示されればrailsプロジェクトが完成しています。

まとめ

これで、gemを試行錯誤できるrailsアプリケーションができました。次回以降、基本的なところからやっていきます。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-プログラミング
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

ruby on railsのデータベースのテーブルにカラムを追加、削除する

概要 みなさんこんにちはcandleです。今回はrailsのカラムの追加の仕方を紹介します。 本当にrailsは規約が多くて、多くて、なんでデータベースを直接いじれないんだと。 早速やっていきましょう …

railsのrakeで作成したmigrationファイルとstatus履歴を削除する

概要 みなさんこんにちはcandleです。今回はrakeコマンドで作成したマイグレーションファイルの管理を紹介します。rakeコマンドを使っていると、よくよく考えれば必要の無いファイルがある。とか重複 …

ruby on railsで出力されるlog(ログ)のフォーマットを変更する

概要 みなさんこんにちはcandleです。今回はrailsのログに関する記事です。railsは決まった記述でログを出力します。 webアプリケーションを実行中におかしな挙動が合った場合はこのログをもと …

react-lazyloadを使って画像を遅延ロードをする

概要 みなさんこんにちはcandleです。今回はreact-lazyloadを使って画像の遅延読み込みをしてみましょう。SPAにおける問題は最初の読み込み時の遅さです。その中でも画像が多いサイトになる …

railsのfluent-loggerとdevise gemを使ってユーザーの行動をfluentdサーバに収集する

概要 fluentdと言えば、ビックデータで扱うようなデータを集め出力するサーバですが、これとrailsのfluent-logger gemとdevise gemを組み合わせてユーザーの行動ログをとっ …

  • English
  • 日本語

ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー