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

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

関連記事

processingで重複しないランダムな数を配列で取得する

概要 みなさんこんにちはcandleです。今回はprocessingで重複しないランダムな数を配列で取得する関数を作成したいとおもいます。 前提 なし

reactで最もシンプルなドロップダウンメニューを作成

概要 みなさんこんにちはcandleです。今回はreactで最もシンプルなドロップダウンメニューを作ってみたいと思います。 前提 Reactの知識がある 準備 以下のコマンドでreactプロジェクトを …

phpでcompassを使った開発の仕方

概要 みなさんこにちはcandleです。今回はphpでcompassを使いたいと思います。 compassは別名scssともいいます。 compassはphpのライブラリが既にあります。 しかし、その …

phpのsnappyで複数のwebサイトのサムネイルを保存する

概要 前回、snappyの基本的な使い方を試しました。 今回はsnappyを使って、あらかじめ、定義してある複数のwebサイトのサムネイルを保存してみたいと思います。 前提 composerがインスト …

Mysqlで今日以降の最も近い日付を取得する

概要 みなさんこんにちはcandleです。今回はmysqlで今日以降の最も近い日にちを取得する方法を紹介します。 ライブや、イベントなどで、今日から見て、最も近い日のデータを取得したみたいなことってあ …

  • English
  • 日本語

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