rails プロジェクトを新たに作る手順
はじめに
Vagrant + rbenv + Bundler のセットアップが完了していることが前提です。
まだやってないよーって方は以下を参考に。
プロジェクトで使用する Ruby のバージョンを指定する
ユーザー dev1 で作業。
rbenv local でプロジェクトで使用する ruby のバージョンをローカル指定します。
$ cd /home/dev1/rails_apps/myfirstapp インストール済みのRubyのバージョンを確認 $ rbenv versions 2.1.5 * 2.2.0 (set by /usr/local/rbenv/version) インストール可能なRubyのバージョンを確認 $ rbenv install -l Available versions: 1.8.6-p383 1.8.6-p420 ... 2.2.0 をローカル指定します $ rbenv local 2.2.0 ローカルでセットされているかバージョン確認 $ rbenv version 2.2.0 (set by /home/dev1/rails_apps/myfirstapp/.ruby-version)
.ruby-version が作成されます。
rails をローカルインストールする
GemFile 作成
$ bundle init Writing new Gemfile to /home/dev1/rails_apps/myfirstapp/Gemfile
rails のバージョンを指定する。
$ vi GemFile # myfirstapp GemFile source "https://rubygems.org" gem "rails", "4.2.0" ⇐ コメント外すこと!!
rails を Bundler でインストールする
$ bundle install --path=vendor/bundle --binstubs=bundle_bin Fetching gem metadata from https://rubygems.org/........... Fetching version metadata from https://rubygems.org/.. Resolving dependencies...
途中で、
Gem::RemoteFetcher::UnknownHostError: no such name (https://rubygems.org/gems/rails-4.2.0.gem) An error occurred while installing rails (4.2.0), and Bundler cannot continue. Make sure that `gem install rails -v '4.2.0'` succeeds before bundling.
このようなエラーが発生することがありますが、ネットワーク系のエラーのようなので再度 bundle install を行うと続きからインストールが始まります。
rails プロジェクト作成
DBにはmysqlを使用します。(指定しない場合は、SQLite)
$ rails new . --skip-bundle -d mysql create create README.rdoc ...
次に、bundle install します。
これは、rails が作成した GemFile があるのでそれに基づいて gem をインストールするためです。
途中、GemFile を上書きするか聞いてくるので、Yes で続行します。
$ bundle install --path=vendor/bundle --binstubs=bundle_bin
インストール中、下記のような mysql 関連のエラーが発生した場合、
Gem::Ext::BuildError: ERROR: Failed to build gem native extension. /usr/local/rbenv/versions/2.2.0/bin/ruby -r ./siteconf20150228-20842-ysdki3.rb extconf.rb checking for ruby/thread.h... yes checking for rb_thread_call_without_gvl() in ruby/thread.h... yes checking for rb_thread_blocking_region()... no checking for rb_wait_for_single_fd()... yes checking for rb_hash_dup()... yes checking for rb_intern3()... yes checking for mysql_query() in -lmysqlclient... no
mysql-devel をインストールしてからリトライ。
$ sudo yum install -y mysql-devel
rails プロジェクト内に gem のインストールが完了しました。
$ bundle install --path=vendor/bundle --binstubs=bundle_bin … Bundle complete! 12 Gemfile dependencies, 57 gems now installed. Bundled gems are installed into ./vendor/bundle.
vendor/bundle と bundle_bin は git の管理対象から外す
$ echo "/vendor/bundle" >> .gitignore $ echo "/bundle_bin" >> .gitignore
rails アプリケーション起動確認
rails server で確認します。
$ rails server /home/dev1/rails_apps/myfirstapp/myApp/vendor/bundle/ruby/2.2.0/gems/byebug-3.5.1/lib/byebug/history.rb:1:in `require': cannot load such file -- readline (LoadError)
上記のようなエラーが発生する場合、
gem 'rb-readline'
を GemFile に追記します。
追記したら Bundler でインストール。
$ bundle install --path=vendor/bundle --binstubs=bundle_bin
もう一度サーバー起動。
$ rails server
結果的に、ブラウザから localhost:3000 には繋がりませんでした。
調べたところ、
まず、ホストOS側の VagrantFile 内にポートフォワーディングの設定をする必要がありました。
config.vm.network "forwarded_port", guest: 3000, host: 3000
Vagrant 側の iptables は、stopしました。
VagrantFile を編集したので、設定をリロードします。
$ vagrant reload
また、ブラウザでアクセスしていた localhost は、Vagrant 上で動作している CentOS 自身のことでした。
デフォルトの rails s だと guestOS のみしか接続できない設定となっていたわけです。
そこで、下記コマンドでサーバーの起動をします。
$ rails s -b 0.0.0.0
今度は、rails に接続できましたが mysql 関係のエラーが出ていました。
Mysql2::Error (Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)):
仮想環境に mysql が入っていなかったことが原因です。
mysql を導入し、再度接続。
またエラーが。。。。
ActiveRecord::NoDatabaseError (Unknown database 'myApp_development'):
DB作ってなかっただけでした。
DB作成し、再度接続。
これで、完成です。
ディレクトリ構成が少し微妙な感じがするので、要検討です。
rails new myApp を rails new . に変更しました。

Ruby on Rails 4 アプリケーションプログラミング
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/11
- メディア: 大型本
- この商品を含むブログ (4件) を見る

- 作者: すがわらまさのり,前島真一,近藤宇智朗,橋立友宏
- 出版社/メーカー: 技術評論社
- 発売日: 2014/06/06
- メディア: 大型本
- この商品を含むブログ (8件) を見る

Ruby on Rails 4アプリケーションプログラミング
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/28
- メディア: Kindle版
- この商品を含むブログ (1件) を見る

実践Ruby on Rails 4 現場のプロから学ぶ本格Webプログラミング
- 作者: 黒田努
- 出版社/メーカー: インプレスジャパン
- 発売日: 2014/05/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
[参考]
rbenv インストールから Bundler を使用した Rails のローカルインストールと起動まで - Qiita
rails new や rails serverなどrailsコマンドの使い方 - Rails Webook
【DBまとめ】MySQLからPostgreSQL,SQLiteまで - Qiita
Virtual Box 上の Cent OS に MySQL をインストール
Ruby - developmentでWEBrick起動のRailsはbindオプションでanyアクセスを受け付けるようになる - Qiita