初期設定の流れをいつも忘れてしまうからメモ。
諸々個人的なものなので、参考にする人は各自調べた上で導入してください。
各環境はインストール・設定済みの想定なので、これも分からないことは各自調べるなりコメントで質問してくださればと思います。
環境
Ruby 2.1.3
Rails 4.1.6
PostgreSQL 9.3.5
Heroku
下準備
rails new
時とgem install
時のオプション指定が毎度面倒くさいので、
それぞれ設定ファイルにデフォルトオプションを記述しておく。(設定ファイルが無い場合は自分で作成)
-d postgresql -T --skip-bundle
-
-d postgresql
DBをPostgreSQLにする。MySQLの場合は-d mysql
にする。
オプション無しの場合はSQLite3となる。 -
-T
test-unitをインストールしない -
--skip-bundle
bundle installを行わない
~/.railsrc
を使わずにrails new
したくなったら、--no-rc
オプションを付ければOK
gem: --no-document
-
--no-document
ドキュメントを生成しない
アプリ作成
$ rails new <app name>
<app name>
は正確にはアプリ名というよりパスなので、
例えば、カレントディレクトリで新規作成したい場合はrails new .
でOK
Gemfile
Gemfile修正
バージョンはRuby,Rails以外省略
source 'https://rubygems.org'
ruby '2.1.3'
gem 'rails', '4.1.6'
gem 'pg'
gem 'sass-rails'
gem 'uglifier'
gem 'coffee-rails'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder'
gem 'sdoc', group: :doc
gem 'bcrypt'
group :development do
gem 'spring'
gem 'better_errors' # エラー画面がいい感じになる
gem 'binding_of_caller' # better_errorsでREPLが使えるようになる
gem 'rack-mini-profiler' # Web画面左上にDBアクセスやレンダリングにかかった時間を表示する
# Rails4.2からは、better_errors, binding_of_callerはやめて、
# web-consoleに乗り換えるかも
end
group :development, :test do
gem 'rspec-rails' # テストフレームワーク。近々test-unitに乗り換えるかも
gem 'factory_girl_rails' # テストデータ作成
gem 'faker' # ダミーデータ生成
gem 'hirb' # arrayをテーブル形式でコンソールに出力
gem 'hirb-unicode' # hirbでunicodeを使う
gem 'pry-rails' # REPLをirbからpryにする
gem 'pry-doc' # Ruby自身のCソースコードを表示する
gem 'pry-byebug' # デバッグツール
gem 'pry-stack_explorer' # スタックトレース表示
gem 'awesome_print' # REPLでオブジェクトをキレイなフォーマットで表示する
# Rails4.2からはActiveRecord::Base#pretty_printにより必要なくなるかも
# gem 'did_you_mean' # スペルミスエラー時、正しいスペルをサジェストしてくれる。
# binding_of_callerと同時に使えないっぽいので、必要に応じて入れる
end
group :test do
gem 'capybara' # SeleniumのRuby実装
gem 'selenium-webdriver' # ブラウザ操作自動化ツール
gem 'database_cleaner' # テストデータ消去
end
group :production do
gem 'rails_12factor' # HerokuでRailsアプリを動かす
end
Gemインストール
$ bundle --without production
-
bundle install
はinstall
を省略していいので、bundle
だけでOK -
--without production
本番(production)環境のGemはインストールしない
DB
RDBMSはPostgreSQLの想定
ユーザー(Role)を作成
PostgreSQLにログインして、以下のコマンドでユーザー(ポスグレ的にはRoleといった方が正しい?)を作成する
$ create role <ユーザー(Role)名> with createdb login password '<パスワード>'
DBの設定ファイル(config/database.yml)を修正する。
default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: <開発環境DB名>
username: <開発環境ユーザー(role)名>
password: <パスワード>
test:
<<: *default
database: <テスト環境DB名>
production:
<<: *default
database: <本番環境DB名>
username: <本番環境ユーザー(role)名>
password: <%= ENV['SAMPLE_DATABASE_PASSWORD'] %>
個人的に、直接ファイルに書き込みたくない情報を環境変数からとるか、secrets.yml(Rails4.1から導入)からとるか悩みどころです。Rails4.2から導入されるconfig_for
によって、さらに再考が必要かも。
細かいことは別記事にまとめる予定
データベース作成
$ rake db:create:all
Rspec
以下のコマンドでRspec初期化
$ rails generate rspec:install
昨今の流れ的にtest-unitに移るかも。両方とも使ってみて考えます
Git
Git初期化
$ cd <アプリルート>
$ git init
- git-flowを使う場合は
git flow init
で初期化。git init
をした後にやっても大丈夫
.gitignore修正
テンプレート作成はgitignore.ioを利用(Githubの.gitignoreテンプレートをまとめて検索・出力してくれるサービス)
以下、https://www.gitignore.io/docs に書かれた設定をした上でのコマンド
$ gi rails >> .gitignore
これでテンプレートを作成した上で、適宜追加編集
また、全環境共通の.gitignoreも作成しておくと便利
例えばMac, Emacsでの開発ならば以下の通り
$ gi osx,emacs >> ~/.gitignore
$ git config --global core.excludesfile ~/.gitignore
Initial commit
$ git add .
$ git commit -m 'initial commit'
参考
- Ruby on Rails チュートリアル
- Github
- Qiita
- Heroku
- DigitalOcean
- gitignore.io
- ブログ記事
- willnet.in rails new のデフォルトオプションを設定しよう
- 惰眠と論理と指揮棒と Railsでよく使う便利なGem
各公式サイトは省略させていただきます