目的
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/config
に vendor/bundle
の場所を保存してあるので、
2回目以降は、 path
を指定する必要はない。
bundle install
3. rake haml
の実行
./bin/rake haml:replace_erbs
以上で、元からある.erbファイルが.hamlファイルに変換され、
hamlが使用されることがrailsに伝わる。