LoginSignup
24
26

More than 5 years have passed since last update.

[WIP]Rails 新規アプリ作成時初期設定

Last updated at Posted at 2014-10-13

初期設定の流れをいつも忘れてしまうからメモ。

諸々個人的なものなので、参考にする人は各自調べた上で導入してください。
各環境はインストール・設定済みの想定なので、これも分からないことは各自調べるなりコメントで質問してくださればと思います。

環境

Ruby 2.1.3
Rails 4.1.6
PostgreSQL 9.3.5
Heroku

下準備

rails new時とgem install時のオプション指定が毎度面倒くさいので、
それぞれ設定ファイルにデフォルトオプションを記述しておく。(設定ファイルが無い場合は自分で作成)

~/.railsrc
-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

~/.gemrc
gem: --no-document
  • --no-document ドキュメントを生成しない

アプリ作成

$ rails new <app name>

<app name>は正確にはアプリ名というよりパスなので、
例えば、カレントディレクトリで新規作成したい場合はrails new .でOK

Gemfile

Gemfile修正

バージョンはRuby,Rails以外省略

Gemfile
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 installinstallを省略していいので、bundleだけでOK
  • --without production 本番(production)環境のGemはインストールしない

DB

RDBMSはPostgreSQLの想定

ユーザー(Role)を作成

PostgreSQLにログインして、以下のコマンドでユーザー(ポスグレ的にはRoleといった方が正しい?)を作成する

$ create role <ユーザー(Role)> with createdb login password '<パスワード>'

DBの設定ファイル(config/database.yml)を修正する。

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'

参考

各公式サイトは省略させていただきます

24
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
26