Edited at

RailsInstaller on Windows 8.1 検証メモ

More than 3 years have passed since last update.

Rails Girls Shiojiriに向けた、RailsInstallerを用いたRails環境構築の確認。

Windows 8.1環境で検証。


インストールについて



  • 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エラーが発生する


    • 参考


    • ここからダウンロードした証明書をC:\RailsInstaller\Ruby2.1.0\lib\ruby\2.1.0\rubygems\ssl_certsに移動(ブラウザでは右クリックで保存する。.txtがつく場合があるので「すべてのファイル」を選択してから保存)

    • rubygemsへのパスはgem which rubygemsで確認できる




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 のインストール


  1. 以下のURLにアクセス



  2. 「INSTALL」をクリックしてインストーラをダウンロード


    • おそらく自動的に適切なインストーラがダウンロードされるが、32bit, 64bit別々なので



  3. ダウンロードしたインストーラを実行


    • ウィザードに従って特に変更無しで



※Node.jsインストール後に、コマンドプロンプトを再起動することnodeコマンドへのパスが通らないのでエラーが解消されない)

ここまでで、Scaffoldアプリの動作は全て問題なし。