rails

アプリケーションの作成(rails new)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0

説明

アプリケーションに最低限必要なフォルダやファイルを自動的に作成

使い方

$ rails new アプリケーション名 [オプション]

オプション

オプション説明デフォルト
-r, -ruby=PATHrubyバイナリのパス
-m, -template=TAMPLATEテンプレートのパス
--skip-gemfileGrmfileを作成しない
ーB, --skip-bundlebundle installを行わない
-G, --skip-git.gitignoreを組み込まない
--skip-keeps.keepを組み込まない
-O, --skip-active-recodeactive recordを組み込まない
-S, --skip-sprocketssprocketsを組み込まない
--skip-springspringアプリケーションをインストールしない
-d, --database=DATABASEデータベースの種類sqlite3
-j, --javascript=JAVASCRIPT組み込むJavaScriptライブラリーを指定。jquery
-J, --skip-javascriptjavascriptを組み込まない
--devgithub リポジトリ上の自分のコードから作成
--edgegithub リポジトリ上の最新のコードから作成
-T, --skip-test-unittest::unitを組み込まない
--rc=RC
--no-rc
-f, --forceファイルが存在する場合に上書きする
-p, --pretendドライラン
-q, --quiet進捗情報を表示しない
-s, --skip既に存在するファイルについてはスキップ
-h, --helpヘルプ
-v, --versionバージョンを表示

アプリケーションを作成
$ rails new weblog
mysqlを使うアプリケーションを作成
$ rails new weblog -d mysql
古いバージョンのRailsでアプリケーションを作成
$ rails _3.2.13_ new weblog

アプリケーションに必要なコントローラ、モデル、ビューをまとめて生成(rails generate scaffold)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

アプリケーションの基本的な機能の一覧(index)、詳細(show)、新規作成(new/create)、編集(edit/update)、削除(destroy)を行うために必要なコントローラ、モデル、ビューをまとめて生成

使い方

$ rails generate scaffold 名前 [カラム名:型]

オプション

オプション説明
-r, -ruby=PATHrubyバイナリのパス
-b, --builder-BUILDERbuilderのパスを指定
-m, -template=TAMPLATEテンプレートのパス
--skip-gemfileGrmfileを作成しない
--skip-bundlebundle installを行わない
-G, --skip-git.gitignore, .gitkeepを組み込まない
-O, --skip-active-recodeactive recordを組み込まない
-S, --skip-sprocketssprocketsファイルをスキップ
-d, --database=DATABASEデータベースの種類
-j, --javascript=JAVASCRIPT組み込むJavascriptライブラリーを指定。デフォルトは、jquery
-J, --skip-javascriptjavaScriptを組み込まない
--devgithub リポジトリ上の自分のコードから作成
--edgegithub リポジトリ上の最新のコードから作成
-T, --skip-test-unittest::unitを組み込まない
--old-style-hash古いハッシュ形式(:foo => 'bar')を有効にする(Ruby1.9以上)
-f, --forceファイルが存在する場合に上書きする
-p, --pretendドライラン
-q, --quiet進捗情報を表示しない
-s, --skip既に存在するファイルについてはスキップ
-h, --helpヘルプ
-v, --versionバージョンを表示

カラムの型

データ方説明
string文字列
text長い文字列
integer整数
float浮動小数
decimal精度の高い小数
datetime日時
timestampより細かい日時
time時間
date日付
binaryバイナリデータ
booleanBoolean型

生成されるファイル

ファイル説明
db/migrate/YYYYMMDDHHMMSS_create_XXXs.rbマイグレーションファイル
app/assets/javascripts/XXXs.js.coffeeモデル固有のCoffeeScript
app/assets/stylesheets/XXXs.css.scssモデル固有のSCSSスタイルシート
app/assets/stylesheets/scaffolds.css.scssScaffold共通のSCSSスタイルシート
app/controllers/XXXs_controller.rbコントローラファイル
app/views/XXXs/index.html.erbすべてのリストを表示
app/views/XXXs/edit.html.erb編集ファイル
app/views/XXXs/show.html.erb詳細ページ
app/views/XXXs/new.html.erb新規ページ
app/views/XXXs/_form.html.erbフォーム用ページ
app/models/XXX.rbモデルファイル
app/helpers/XXXs_helper.rbヘルパー
test/functional/XXXs_controller_test.rbコントローラ用テストファイル
test/unit/XXX_test.rbモデル用テストファイル
test/fixtures/XXXs.ymlfixtureファイル
test/unit/helpers/XXXs_helper_test.rbテスト用
public/stylesheets/scaffold.cssデフォルトのスタイルシート

$ rails generate scaffold page name:string title:string
      invoke  active_record
      create    db/migrate/YYYYMMDDHHMMSS_create_pages.rb
      create    app/models/page.rb
      invoke    test_unit
      create      test/unit/page_test.rb
      create      test/fixtures/pages.yml
       route  resources :pages
      invoke  scaffold_controller
      create    app/controllers/pages_controller.rb
      invoke    erb
      create      app/views/pages
      create      app/views/pages/index.html.erb
      create      app/views/pages/edit.html.erb
      create      app/views/pages/show.html.erb
      create      app/views/pages/new.html.erb
      create      app/views/pages/_form.html.erb
      invoke    test_unit
      create      test/functional/pages_controller_test.rb
      invoke    helper
      create      app/helpers/pages_helper.rb
      invoke      test_unit
      create        test/unit/helpers/pages_helper_test.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/pages.js.coffee
      invoke    scss
      create      app/assets/stylesheets/pages.css.scss
      invoke  scss
      create    app/assets/stylesheets/scaffolds.css.scss

自動生成したファイルの削除(rails destroy)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

rails generateで自動生成したファイルを削除

使い方

$ rails destroy 生成したファイルの種類 [削除するファイル名] [オプション]

生成したファイルの種類

  • controller
  • generator
  • helper
  • integration_test
  • mailer
  • migration
  • model
  • observer
  • performance_test
  • plugin
  • resource
  • scaffold
  • scaffold_controller
  • session_migration
  • stylesheets

オプション

オプション説明
-h, --helpヘルプを表示
-p, --pretendドライラン
-f, --forceファイルが存在する場合に上書きする
-s, --skip既に存在するファイルについてはスキップ
-q, --quiet進捗状況を表示しない

helloのコントローラを削除
$ rails destroy controller hello
マイグレーションファイルの削除
$ rails destroy migration AddSslFlag
   notempty  db/migrate
   notempty  db
         rm  db/migrate/20101030171223_add_ssl_flag.rb
プラグインをインストール
$ rails plugin remove continuous_builder

プラグインをインストール(rails plugin install)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

プラグインをインストール

使い方

$ rails plugin install [プラグイン名/githubのURL] [オプション]

オプション

オプション説明
-x, --externalsプラグインを取得するsvnを指定
-o, --checkoutプラグインを取得するsvn checkoutを指定
-e, --exportプラグインを取得するsvn exportを指定
-q, --quiet進捗状況を表示しない
-r, --revision REVISION チェックアウトするリビジョン番号を指定
-f, --forceファイルが存在する場合に上書きする
-h, --helpヘルプを表示

プラグインをインストール
$ rails plugin install continuous_builder asset_timestamping

ローカルでサーバを起動(rails server)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

Railsに付随しているWEBrickをサーバとして起動

使い方

$ rails server [オプション]

オプション

オプション説明初期値
-p, --port=portサーバを起動するときのポート番号を指定3000
-b, --binding=ipバインドするIPアドレスを指定0.0.0.0
-c, --config=filerackupファイルを指定
-d, --daemonデーモンとしてサーバを起動
-u, --debuggerデバックモード
-e, --environment=name環境(test/development/production)を指定してサーバを起動development
-P, --pid=pidPIDファイルを指定tmp/pids/server.pid
-h, --helpヘルプを表示

開発用WEBサーバを起動
$ rails server
=> Booting WEBrick
=> Rails 3.0.7 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
ポート番号を変更
$ rails server --p=3001
デーモンとして起動
$ rails server --d
本番として起動
$ rails server -e production

マイグレーションの生成(rails generate migration)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

マイグレーションファイル(テーブル定義の作成・変更を行うファイル)を生成

特徴

  • 必ずupメソッドとdownメソッドを含めなければならない
  • self.upがmigrationのバージョンがあがるときに実行
  • self.downがmigrationのバージョンがあがるときに実行
  • クラス名をすべて小文字にしたものが、ファイル名アンダースコア(_)以降と一致する必要がある

使い方

$ rails generate migration 名前 [カラム名:型]  [オプション]

オプション

オプション説明デフォルト
--skip-namespace名前空間をスキップする
--old-style-hash古いハッシュの形式を使う
-o, -orm=名前使用するO/Rマッパーを指定active_record
-f, --forceファイルが存在する場合に上書きする
-q, --quiet進捗状況を表示しない
-p, --pretendドライラン
-s, --skip既に存在するファイルについてはスキップ
-h, --helpヘルプを表示

カラムの型

データ方説明
string文字列
text長い文字列
integer整数
float浮動小数
decimal精度の高い小数
datetime日時
timestampより細かい日時
time時間
date日付
binaryバイナリデータ
booleanBoolean型

作成されるファイルの基本構成

class マイグレーション名s < ActiveRecord::Migration
  def up
  end

  def down
  end
end

基本形(オプションなし)
$ rails generate migration Page
      invoke  active_record
      create    db/migrate/20120421134507_page.rb
カラムを指定して生成
$ rails generate migration AddTitleToPage title:string
      invoke  active_record
      create    db/migrate/20120421134409_add_title_to_page.rb

モデルの生成(rails generate model)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

モデルを生成

使い方

$ rails generate model 名前 [カラム名:型] [オプション]

オプション

オプション説明デフォルト
--skip-namespace名前空間をスキップする
--old-style-hash古いハッシュの形式を使う
-o, -orm=名前使用するO/Rマッパーを指定active_record
--migrationマイグレーションファイルを生成するかtrue
--timestampstrue
--parent=名前
--indexestrue
-t, --test-frameword=名前使用するテストフレームワークを指定test_unit
--fixturesフィクスチャを生成するかtrue
-r, --fixture-replacement=名前フィクスチャを変更する
-f, --forceファイルが存在する場合に上書きする
-q, --quiet進捗状況を表示しない
-p, --pretendドライラン
-s, --skip既に存在するファイルについてはスキップ
-h, --helpヘルプを表示

カラムの型

データ方説明
string文字列
text長い文字列
integer整数
float浮動小数
decimal精度の高い小数
datetime日時
timestampより細かい日時
time時間
date日付
binaryバイナリデータ
booleanBoolean型

userモデルの作成
$ rails generate model user
      invoke  active_record
      create    db/migrate/YYYYMMDDHHMMSS_create_users.rb
      create    app/models/user.rb
      invoke    test_unit
      create      test/unit/user_test.rb
      create      test/fixtures/users.yml

コンソールを起動(rails console)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

コンソールを起動

使い方

$ rails console [環境(test/development/production)] [オプション]

オプション

オプション説明
-s, -sandbox終了時にデータベースに関する変更をロールバック
-debuggerデバックモードで起動
-irbirb
-h, --helpヘルプ

コンソール起動
$ rails console
Loading development environment (Rails x.x.x)
irb(main):001:0>
production環境でコンソール起動
$ rails console production
Loading production environment (Rails x.x.x)
irb(main):001:0>
コンソールでSQLの出力を表示
$ rails console
irb(main):001:0> ActiveRecord::Base.logger = Logger.new(STDOUT)

Rails環境で動かすバッチ処理(rails runner)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

Rails環境で動かすバッチ処理

使い方

$ rails runner 実行するコード [オプション]

オプション

オプション説明
-e環境((test/development/production)を指定
-h, --helpヘルプ

データベースクライアントを起動(rails dbconsole)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

コンソールを起動

使い方

$ rails dbconsole [環境(development, text, production)]

基本的な使い方
$ rails dbconsole

コントローラの生成(rails generate controller)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

コントローラとビューの生成

使い方

$ rails generate controller 名前 [アクション名...]

オプション

オプション説明初期値
--skip-namespace名前空間をスキップする
--skip-routeconfig/routes.rbに追加しない
-e, --template-engine=NAME使用するテンプレートエンジンを指定erb
-t, --test-framework=NAME使用するテストフレームワークを指定test_unit
--helperヘルパーを生成するかtrue
--assetsアセットを生成するかtrue
-f, --forceファイルが存在する場合に上書きする
-p, --pretendドライラン
-q, --quiet進捗状況を表示しない
-s, --skip既に存在するファイルについてはスキップ
-h, --helpヘルプを表示

基本形(オプションなし)
$ rails generate controller Page
      create  app/controllers/page_controller.rb
      invoke  erb
      create    app/views/page
      invoke  test_unit
      create    test/functional/page_controller_test.rb
      invoke  helper
      create    app/helpers/page_helper.rb
      invoke    test_unit
      create      test/unit/helpers/page_helper_test.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/page.js.coffee
      invoke    scss
      create      app/assets/stylesheets/page.css.scss
アクションとビューも生成
$ rails generate controller page title
      create  app/controllers/page_controller.rb
       route  get "page/title"
      invoke  erb
      create    app/views/page
      create    app/views/page/title.html.erb
      invoke  test_unit
      create    test/functional/page_controller_test.rb
      invoke  helper
      create    app/helpers/page_helper.rb
      invoke    test_unit
      create      test/unit/helpers/page_helper_test.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/page.js.coffee
      invoke    scss
      create      app/assets/stylesheets/page.css.scss
階層化されたコントローラを生成
$ rails generate controller 'admin/page'
      create  app/controllers/admin/page_controller.rb
      invoke  erb
      create    app/views/admin/page
      invoke  test_unit
      create    test/functional/admin/page_controller_test.rb
      invoke  helper
      create    app/helpers/admin/page_helper.rb
      invoke    test_unit
      create      test/unit/helpers/admin/page_helper_test.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/admin/page.js.coffee
      invoke    scss
      create      app/assets/stylesheets/admin/page.css.scss