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

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

関連記事

ElastiCacheのmemcachedとEC2上のrailsとdalli-elasticacheを使ってキャッシュ管理する

概要 皆さんこんにちはcandleです。今回はaws上にあるElastiCacheというサービスを使って railsのキャッシュを管理したいと思います。 キャッシュというのはwebサービス上でよく使う …

C++のopencvでhelloworld

概要 (追記、2018年11月に書き直しました) みなさんこんにちはcandleです。インストールできたopencvを使ってhelloworldを行いましょう。 opencvでhelloworldとは …

CakePHPでhelloworld

概要 CakePHPでプログラミングのお約束helloworldを行いましょう。 helloworldとは動作確認も含めた、一番最初に書くプログラムコードです。 だいたいはhello worldと単純 …

Chart.js 2.0でy軸の最大値(scales max)と最小値を設定する

概要 みなさんこんにちはcandleです。今回はChart.js2.0でy軸の最大値、最小値を設定する方法を紹介します。 Chart.js 2.0では特に指定しないと自動的に、y軸の最大値を設定してく …

ReactでFaker.jsを利用してダミーデータを生成する

概要 みなさんこんにちはcandleです。今回はFaker.jsをReactで使ってみようと思います。 Faker.jsの使用目的は様々あると思います。多くの場合はテストで使うと思うのですが、今回は簡 …

  • English
  • 日本語

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