Rails Girls Shiojiriに向けた、RailsInstallerを用いたRails環境構築の確認。
Windows 8.1環境で検証。
- Rails GirlsのGuideに従って、インストールから動作確認まで
インストールについて
-
railsinstaller-3.1.0.exe
を用いた- 基本的にそのままウィザードを進めればOK
- Gitも同梱されている
注意事項
railsinstallerでインストールするRubyに環境変数(PATH)が上書きされるので、既にRuby環境が整っている人は、それまで使っていたRuby環境が使えなくなるので注意。(パスを変えないといけない)
Railsのアップグレード
- 標準で同梱されているRailsは4.1.8
- 一応最新のものにupdate
- 今回は4.2.0
- 新しいRailsがリリースされたときに挙動が変わらないように、-vオプションできちんと指定した方が良いかも?
- Rubyで初めてネットワーク通信を行うので、Windowsファイアーウォールの警告が出る場合がある
- ネットワーク接続時に「パブリックネットワーク」として接続した場合、「パブリックネットワーク」にもチェックが必要
- 例によってSSLエラーが発生する
Railsプロジェクトの作成
-
C:\Sites
内にプロジェクトを作成
rails new railsgirls
# bundle installで少し時間が掛かる
cd railsgirls
rails server
# 遅い:`INFO WEBrick::HTTPServer#start: pid=**** port=3000`が表示されるまで待つ
Scaffoldの作成
-
http://railsgirls.jp/app/
- に従ってscaffoldの発行は問題なし
-
http://localhost:3000/ideas
アクセス時にエラー発生- CoffeeScriptの変換に依存する部分が動作しない
ExecJSのエラー
Windows上でCoffeeScriptの変換時にエラーが出る。
再現環境
- Windows 8.1
- Rails 4.2.0
- 原因となるgem(coffee-railsの依存gem)
- coffee-script-source (1.9.0)
- execjs (2.3.0)
内容
scaffold後のページにアクセスするとエラーが発生する。
CoffeeScriptのコンパイル時にエラーが発生。
ActionView::Template::Error (TypeError: オブジェクトでサポートされていないプロパ
ティまたはメソッドです。
(in C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/turbolinks-2.5.3/lib/
assets/javascripts/turbolinks.js.coffee)):
原因
CoffeeScriptのコンパイラはJavaScriptで実装されている。
このコンパイラのJavaScriptを実行するために、WindowsではWindows Script Host(以下WSH)という処理系が用いられる。(ExecJSというGemで自動的に環境判定を行って呼び出している)
CoffeeScriptのコンパイラ内で、WSHで対応していないJavaScriptのAPIが呼び出されていることが原因。
- 参考
対処
- JavaScriptの処理系にWSHを使わずNode.jsを使う
- Node.jsをインストールするだけでOK
Node.js のインストール
- 以下のURLにアクセス
- 「INSTALL」をクリックしてインストーラをダウンロード
- おそらく自動的に適切なインストーラがダウンロードされるが、32bit, 64bit別々なので
- ダウンロードしたインストーラを実行
- ウィザードに従って特に変更無しで
※Node.jsインストール後に、コマンドプロンプトを再起動すること (node
コマンドへのパスが通らないのでエラーが解消されない)
ここまでで、Scaffoldアプリの動作は全て問題なし。