Rails 5.1で「Action Cable」が動かない「ように見える」
「Rubygemsにつながらない!?」という問題(Windows)
[解説]
本書第6章の「Action Cable」はRails5.0の動作例ですが、Rails5.1では動かないように「見えます」。[実践]
[1]Node.jsのインストール
「Yarn」はNode.jsを必要とします。以下のWebサイトから「Node.js」の最新安定版(LTS)をダウンロードします。
インストーラはMSI形式です。ダブルクリックして起動し、初期設定の通りにインストールを進めてください。
[2]Yarnのインストール
Yarnの公式サイトは以下のURLにあります。
YarnのWindows版のダウンロードサイトは以下のURLにあります。
https://yarnpkg.com/en/docs/install#windows-tab
インストーラはMSI形式です。ダブルクリックして起動し、初期設定の通りにインストールを進めてください。
[3]RailsプロジェクトにJQueryをインストール
本書の通りですと、Railsプロジェクト「simplechat」でプログラムを書いています。そこで、コマンドウィンドウでこの「simplechat」に移動した状態で、リスト1のようなyarnコマンドでJQueryを導入します。
yarn add jquery
これで、プロジェクト「simplechat」の中に、「node_modules」というフォルダ(その中にJQueryのライブラリ)と、「package.json」というファイルができます。これで「JQueryを使わせる準備」は完了です。
[4]JQueryを使う設定
最後に、プロジェクトの設定ファイルを編集します。「simplechat」プロジェクトファイルの「app/assets/javascript/application.js」です。
//= require rails-ujs //= require turbolinks //= require_tree .
これにリスト3のように「jqueryを用いる」という記述を追加します。Rails5.0までは自動で書かれていた記述です。
//= require jquery
ファイルを保存したら、「rails server」コマンドでサーバーを再起動します。本書の結果が得られるようになるでしょう。
[解説] Ruby on Railsで必要なソフトウェアは、Rubygemsというシステムによりインターネット上のレポジトリ(専用のファイル配信サイト)から「gem」というコマンドでダウンロードします。
しかし最近リポジトリにアクセスするための認証データが「古い」というので、接続できないことがあります。これは我々のせいではありません。接続・ダウンロードとインストールを管理するためのソフトウェア「rubygems」のバージョンが古いからです。
この問題は特にWindowsで多く起こります。なぜなら、Windowsではrubyの実行環境をrubyの開発チーム以外の有志が開発提供しているからです。本書でも用いている「RubyInstaller」というプロジェクトが代表的です。そのWindows用のrubyパッケージの中にあるrubygemsが古いと、上記の問題が起こります。
しかしせっかくWindows用rubyを提供してくれている人を恨んではいけません。この問題は解決できます。「rubygems」の開発者が提供している最新のソフトウェアを入手してこれだけアップデートすればいいのです。rubygemsそのものはrubyスクリプトなので、「Windows用」かどうかという区別はありません。
[実践]以下のWebサイトから「rubygems」の最新版をダウンロードします。
「Install RubyGems(rubygemsをインストールする)」というボタンを押すと、スクリプトのダウンロードページに行きます。(上の図を押してもなにも起こりません。実際のサイトへ移動してください) 図2のような画面が出ますので、Windowsで扱いやすい圧縮形式「ZIP」をクリックしてください。(図2を押してもなにも起こりません。実際のサイトへ移動してください)
では、コマンドプロンプトで、この「rubygems-2.6.8」というフォルダに行きます。
コマンドを以下のように打ってください。
ruby setup.rbメッセージがバラバラ出てきて「エラーか」とびっくりしますが、変更履歴や使い方ですので大丈夫です。
筆者はこれで接続拒否の暗闇から抜け出しました。