「はじめてのRuby on Rails5」サポートページ

このページは「はじめてのRuby on Rails5」(工学社より2016年11月7日発刊、ISBN978-4-7775-1978-1)のサポートページです。


重要事項

Rails 5.1で「Action Cable」が動かない「ように見える」

「Rubygemsにつながらない!?」という問題(Windows)


Rails 5.1で「Action Cable」が動かない「ように見える」

[解説]

本書第6章の「Action Cable」はRails5.0の動作例ですが、Rails5.1では動かないように「見えます」。
実は、動いているのですが、結果を表示するのに使っている「JQuery」というJavaScriptのライブラリがRails5.1で同梱されなくなったため、表示されないのです。
調査の結果、もっとも確実な方法は、プロジェクトにJQueryを自分でインストールすることです。プロジェクトひとつにJQueryを一揃い、インストールしなければなりません。
そこで便利なのが「Node.js」のパッケージマネージャ「Yarn」です。YarnはJQueryを「Node.js」のモジュールとしてインストールし、RailsプロジェクトからJQueryを参照する設定ファイルも作ってくれます。

[実践]

[1]Node.jsのインストール

「Yarn」はNode.jsを必要とします。以下のWebサイトから「Node.js」の最新安定版(LTS)をダウンロードします。

https://nodejs.org/

インストーラはMSI形式です。ダブルクリックして起動し、初期設定の通りにインストールを進めてください。

[2]Yarnのインストール

Yarnの公式サイトは以下のURLにあります。

https://yarnpkg.com

YarnのWindows版のダウンロードサイトは以下のURLにあります。

https://yarnpkg.com/en/docs/install#windows-tab

インストーラはMSI形式です。ダブルクリックして起動し、初期設定の通りにインストールを進めてください。

[3]RailsプロジェクトにJQueryをインストール

本書の通りですと、Railsプロジェクト「simplechat」でプログラムを書いています。そこで、コマンドウィンドウでこの「simplechat」に移動した状態で、リスト1のようなyarnコマンドでJQueryを導入します。

リスト1 yarnコマンドでJQueryを導入
yarn add jquery

これで、プロジェクト「simplechat」の中に、「node_modules」というフォルダ(その中にJQueryのライブラリ)と、「package.json」というファイルができます。これで「JQueryを使わせる準備」は完了です。

図1 プロジェクト「simplechat」のフォルダの中にできるフォルダと設定ファイル

[4]JQueryを使う設定

最後に、プロジェクトの設定ファイルを編集します。「simplechat」プロジェクトファイルの「app/assets/javascript/application.js」です。

図2プロジェクト「simplechat」の「app/assets/javascript」フォルダの中にあるファイル「application.js」
このファイルを開くと、リスト2のような表記があります。
リスト2今の「application.js」の中身
//= require rails-ujs
//= require turbolinks
//= require_tree .

これにリスト3のように「jqueryを用いる」という記述を追加します。Rails5.0までは自動で書かれていた記述です。

リスト3「application.js」に追記
//= require jquery

ファイルを保存したら、「rails server」コマンドでサーバーを再起動します。本書の結果が得られるようになるでしょう。


「Rubygemsにつながらない!?」という問題(Windows)

[解説] Ruby on Railsで必要なソフトウェアは、Rubygemsというシステムによりインターネット上のレポジトリ(専用のファイル配信サイト)から「gem」というコマンドでダウンロードします。
しかし最近リポジトリにアクセスするための認証データが「古い」というので、接続できないことがあります。これは我々のせいではありません。接続・ダウンロードとインストールを管理するためのソフトウェア「rubygems」のバージョンが古いからです。
 この問題は特にWindowsで多く起こります。なぜなら、Windowsではrubyの実行環境をrubyの開発チーム以外の有志が開発提供しているからです。本書でも用いている「RubyInstaller」というプロジェクトが代表的です。そのWindows用のrubyパッケージの中にあるrubygemsが古いと、上記の問題が起こります。
 しかしせっかくWindows用rubyを提供してくれている人を恨んではいけません。この問題は解決できます。「rubygems」の開発者が提供している最新のソフトウェアを入手してこれだけアップデートすればいいのです。rubygemsそのものはrubyスクリプトなので、「Windows用」かどうかという区別はありません。

[実践]以下のWebサイトから「rubygems」の最新版をダウンロードします。

https://rubygems.org/

図1 「RubyGems」のホームページはこんな様子

「Install RubyGems(rubygemsをインストールする)」というボタンを押すと、スクリプトのダウンロードページに行きます。(上の図を押してもなにも起こりません。実際のサイトへ移動してください)
図2のような画面が出ますので、Windowsで扱いやすい圧縮形式「ZIP」をクリックしてください。(図2を押してもなにも起こりません。実際のサイトへ移動してください)

図2 作業したいフォルダ上に貼り付け

たとえば、「rubygems-2.6.8.zip」というファイルが得られますので、展開して同名のフォルダを生成させてください。

では、コマンドプロンプトで、この「rubygems-2.6.8」というフォルダに行きます。
コマンドを以下のように打ってください。

ruby setup.rb

メッセージがバラバラ出てきて「エラーか」とびっくりしますが、変更履歴や使い方ですので大丈夫です。
図3 こんな感じでインストール完了

筆者はこれで接続拒否の暗闇から抜け出しました。


このサイトのトップへ