【Rails3開発スタートアップ】
Ryby1.9 においてコード中で日本語を扱う場合は、ファイルの先頭に以下のマジックコードを付加すること
$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 commit -m 'first commit'
|
・履歴を確認
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 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
|