1. Qiita
  2. 投稿
  3. Rails4

vagrant上でrails 4.2.4プロジェクトを作成する

  • 5
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

目的

vagrant環境上に、railsプロジェクトを作成した際にハマった点をメモする。

前提

windows環境にvagrantを入れて、rails 4.2.4プロジェクトを作成する。

  • vagrant (CentOS6.5)
  • ruby 2.1.7 (rbenv)
  • rails 4.2.4

vagrantのインストールは、
Windows上でVirtualBox+Vagrant+CentOSによる仮想環境構築|Qiita @hiroyasu55

ruby + railsのインストールは、
rails環境構築(CentOS + ruby on rails)|Qiita @shinyashikis@github

上記を参考にした。

新規rails4.2.4プロジェクトの作成

1. rails new コマンドで新しいプロジェクトを作成。

自動的に、bundle installを行わないように、-- skip-bundleオプションをつける。

rails new project_name --skip-bundle

下記でも可。

rails new project_name -B

2. Gemfileの編集

therubyracerの行をコメントインする。
JavaScript のエンジンv8を Ruby から使えるようにする。

vim Gemfile

3. gemのインストール

このとき、環境に依存しないように、pathを指定する。

bundle install --path=vendor/bundle

ハマりポイント1

railsのプロジェクトがWindowsとvagrant上のCentOSの共有フォルダ内である場合、
上記コマンドが失敗する場合がある。
この場合は、pathを共有フォルダ以外に指定する必要がある。
以下に例を示す。

bundle install --path=~/bundle/project_name

以上は、下記のブログを参照した。
Vagrant環境でのbundle installで失敗する|tamo's blog

4. WEBrick起動

WEBrick起動

bundle exec rails s

http://localhost(or IP):3000 にアクセス。

ハマりポイント2

Vagrantを使用している場合は、ポート番号とIPアドレスを指定する必要がある。
IPアドレスがわからない場合は、 ifconfig で調べる。
ポート番号はデフォルトポート3000番を使用する場合、省略可能である。

bundle exec rails s (-p 3000) -b 192.168.33.10

上記のようにポート番号とIPアドレスを指定した場合、以下のようにアクセス。

http://192.168.33.10:3000

追記:
以上については以下のページが詳しいので、ご参照ください。
Rails 4.2.0のrails serverにアクセスできない|Qiita @mizoki

オプション

以下は、お好みで。

不要なログを削除する

本節は、下記のブログを大いに参考にした。
Railsメモ(21) : quiet_assetsでアセットパイプラインのログを出力しないようにする |もた日記

WEBrick起動中、IPアドレスやアセットパイプラインのログが出る場合がある。
これらが不要の場合は、以下を行う。

IPアドレスのログの非表示

config/environments/development.rbに以下を追加する。

Rails.application.configure do
  …
  config.web_console.whitelisted_ips = '192.168.33.1'
end

アセットパイプラインのログの非表示

Gemfileに以下を追加して、 bundle install を実行する。

group :development do
  gem 'quiet_assets'
end

一時的にログを出力したい場合は、 config/application.rb に下記行を追加。

config.quiet_assets = false

Hamlを利用する

本節は、下記のブログを大いに参考にしました。
Rails 4 で Haml を利用する手順|Qiita @ hkusu

1. Gemfileに追加

gem 'haml-rails'
gem 'erb2haml'

2. bundle install を実行

ちなみに、 .bundle/configvendor/bundle の場所を保存してあるので、
2回目以降は、 path を指定する必要はない。

bundle install

3. rake haml の実行

./bin/rake haml:replace_erbs

以上で、元からある.erbファイルが.hamlファイルに変換され、
hamlが使用されることがrailsに伝わる。