Rails3-introduction

【Rails3開発スタートアップ】


Ryby1.9 においてコード中で日本語を扱う場合は、ファイルの先頭に以下のマジックコードを付加すること

1
# encoding: utf-8

$HOME以下にrailsアプリを作成(DB指定を忘れないこと)

1
$ rails new demo -d mysql

コントローラ生成

1
$ rails g controller <コントローラ名> <アクション名>

rails環境下でのスクリプト実行(コマンドラインからモデルを使用した処理を実行可能)

1
$ rails runner <スクリプト名>

モデル生成

1
$ rails g model <モデル名> <カラム名:型> <オプション>

scaffold作成例

1
2
3
4
$ rake db:create
$ rails g scaffold user name:string age:integer
$ rake db:migrate
$ rails server

モデルへカラム追加

1
$ rails g migration AddColnameToTablename colname:string

DB操作

DB削除、DB作成、テーブル作成、初期値挿入

1
2
3
4
$ rake db:drop
$ rake db:create
$ rake db:migrate
$ rake db:seed
ヒント

・レコードの内容を操作する必要があるとき、マイグレーションの内部でレコードの操作を行うことが有用な場合がある  その場合、マイグレーションをロールバックしてもデータに誤謬が生じないようロールバックさせるようにすること


Gemfile

必須コンポネント

他にもあるが、別稿に譲る

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
gem 'pg'                        # postgresql用アダプタ
gem 'therubyracer'              # JavaScript
gem 'will_paginate', '~> 3.0'   # will_paginate(バージョンに注意)
gem 'bcrypt-ruby'               # ハッシュ生成用
gem 'rspec-rails'               # rspec
gem "thin"                      # 開発用WebServer

# for pry
source 'http://rubygems.org'
group :development do
  gem 'pry-rails'
  # gem 'pry-coolline', :git => 'git://github.com/pry/pry-coolline.git'
  gem 'pry-nav'
  gem 'pry-exception_explorer'
  gem 'hirb-unicode'
end

.pryrc

プロジェクトディレクトリ直下に設置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# https://github.com/pry/pry/wiki/FAQ#wiki-hirb$
require 'hirb'$
$
Hirb.enable$
$
old_print = Pry.config.print$
Pry.config.print = proc do |output, value|$
  Hirb::View.view_or_page_output(value) || old_print.call(output, value)$
end$
$
Pry.commands.alias_command 'c', 'continue'$
Pry.commands.alias_command 's', 'step'$
Pry.commands.alias_command 'n', 'next'$
Pry.commands.alias_command 'f', 'finish'$

参考:
https://github.com/nixme/pry-debugger


rspec導入/テスト雛形作成

・railsへのrspecのインストールと雛形を作成。

1
$ rails generate rspec:install

・既に作成済みのコントローラのテストの雛形を作成(アクションは複数追加可)

1
$ rails generate rspec:controller <コントローラ名> <アクション名> <アクション名> ......

gitリポジトリ作成

以下はプロジェクトディレクトリに移動して行うこと。

・レポジトリ初期化

1
$ git init

・ファイルを全て追加

1
$ git add .

・変更ファイルを確認

1
$ git status

・コミット

1
$ git commit -m 'first commit'

・履歴を確認

1
$ git log

rakeファイル

rakeタスクでActiveRecordを使うには、「task :taskname => :environment」が必要

rakeファイル中で以下のように記述する

1
2
3
4
5
namespace :hoge do
  task :setup => :environment do
    p User.count
  end
end

その他

状態表示
1
$ rake stats

ルート表示

1
$ rake routes

コントローラで絞り込む場合

1
$ rake routes CONTROLLER=<コントローラ名>

例)

1
$ rake routes CONTROLLER=users

session情報をDBで管理する方法

まずRDBに対してマイグレーションを行う

1
2
$ rake db:sessions:create
$ rake db:migrate

次に config/initializers/session_store.rb 3行目をコメントに変更する

1
#<プロジェクト名>::Application.config.session_store :cookie_store, :key => '_market_session' 

さらに8行目のコメントを外す

1
<プロジェクト名>::Application.config.session_store :active_record_store

また以下を行うことでRDB上のセッション情報を全削除できる

1
$ rake db:sessions:clear

Rakeタスクでプリコンパイル済みのアセットを作成する

1
$ rake assets:precompile RAILS_ENV=production