ハムハムブログ

自分への備忘録

ruby on rails の基本コマンド

ruby on rails の基本コマンド

アプリケーション作成・起動

アプリケーション作成

rails new アプリケーション名


バージョン指定で作成する場合は以下のようにする(下記は3.2.0の例)

rails _3.2.0_ new アプリケーション名


HTTPサーバの起動

(アプリケーションフォルダ内で)
rails server

なお、rails server を省略し、rails s でも問題ないです。
アクセス先は http://localhost:3000/ です。


コントローラの作成

rails generate controller コントローラ名 [オプション]


コントローラとアクションの同時作成(例えばhelloクラスにindex、show、newアクションを追加する場合)

rails generate controller hello index show new

コントローラの削除

rails destroy controller コントローラ名

コントローラクラス

マルチバイトを使用する場合は以下のマジックコメントが最初に必要です。
(ただし、ruby 2.0以降では不要です)

#  coding: utf-8

データベース

各環境のデータベースは以下のファイルに設定の記述する。
config/database.yml


モデルの作成
rails generate model name field:type […] [option]
で記載できる。以下は例。

rails generate model book isbn:string title:string price:integer publish:string published:date cd:boolean


マイグレーションファイルによるテーブルの作成

rake db:migrate


フィクスチャによるテストデータの準備(books.ymlのデータを利用)

rake db:fixtures:load FIXTURES=books


データベースクライアントの起動

rails dbconsole

これ以降は、SQLコマンドを叩けば実行できる
例えば、booksというテーブルのスキーマと中身を確認、終了する方法はそれぞれ以下。

.schema books
SELECT * FROM books;
.quit

Scatffolding機能

Scatffolding機能を利用するにはまず不要なモデルやデータベースを削除する必要がある。
また、マイグレーションファイルの実行は自分でやる必要がある。
bookモデルの削除

rails destroy model book


データベースの削除

rake db:drop


Scaffolding機能によるアプリケーション開発
rails generate scaffold name field:type […] [options]
でScatffolding機能を利用する。

rails generate scaffold book isbn:string title:string price:integer publish:string published:date cd:boolean

このあとに

rake db:migrate

を実行。Scatffoldingによりconfig/route.rbが自動生成されるが、その中の最初の1行

resources :books

だけで、rake routesで各ルートを表示できたりする。

スキーマ

スキーマファイルをデータベースに展開

rake db:schema:load


現在のデータベースを破棄して、最新のスキーマ情報で再構築

rake db:reset

シードファイルとフィクスチャ

シード → 英語で種という意味
フィクスチャ → ソフトウェア用語でテスト時のアプリケーションの初期化のこと

上記の語源より、シードファイルはマスタテーブルなどの初期データを投入するために利用し、フィクスチャはテストデータの豆乳に利用することが想像できる。

シードファイルの実行

rake db:seed

データベースの作成からスキーマの構築、初期データの投入までをまとめて実行

rake db:setup

フィクスチャはtest/fixturesフォルダに「テーブル名.yml」で保存される。
フィクスチャファイルの実行

rake db:fixtures:load FIXTURES=users,reviews