タケユー・ウェブ日報

Ruby on Rails や Flutter といったWeb・モバイルアプリ技術を武器にお客様のビジネス立ち上げを支援する、タケユー・ウェブ株式会社の技術ブログです。

IntelliJ IDEA 13.1 + Ruby plugin 6.5.0.20140314 DE リモートインタプリタ Rails開発

ちょっと前まで結構buggyな印象だったリモートインタプリタですが、最近のバージョンは安定してるっぽいです。

What's リモートインタプリタ

IntelliJ IDEA で開発中のプロジェクトを、リモートホスト上のインタプリタで動作させる機能です。

リモートホストであるにも関わらず、実行やコンソール(rails c)、rakeタスク、rspecなどを SSH ごしに IDEA から操作でき、実行結果やログ等をシームレスに取得可能です。

Windows 上の IDEA で Rails 開発を行う場合はほぼ必須といっていい機能で、開発用サーバを Vagrant 等で管理する場合にも使える機能です。(vagrant用の設定プリセットもあって楽です)

よいとこ

  • Windows 上で Rails 開発という苦行から解放してくれる
  • 開発用サーバと本番用サーバの OS、ライブラリ等を揃えやすい

微妙なとこ

  • bundle install実行後など、ローカルでのスタブの作成などに時間がかかる
  • git checkoutなど、リモートに全体を転送する必要があり規模によっては時間がかかる
  • リモートと言ってもやはりローカル上の仮想マシンでないと転送コストが馬鹿にならない

手順

  1. リモートホスト上でrubyインストール
  2. Railsアプリケーション作成
  3. IDEA上でDeployment先登録
  4. IDEA上でリモートインタプリタ登録
  5. プロジェクト作成
  6. 転送設定
  7. Railsアプリケーションダウンロード
  8. bundle install
  9. 開発サーバ起動

さらに・・・デバッガの使用

リモートホスト上でruby/railsインストール

なんでもよいですが今回はrbenvで。

uzuki05@dev $ rbenv install 2.1.2
uzuki05@dev $ rbenv global 2.1.2
uzuki05@dev $ gem install rails -v=4.1.1 --no-ri --no-rdoc
uzuki05@dev $ rbenv rehash

アプリケーション作成

IDEA上で作成しようとすると、エラーが発生するので、リモートホスト側で作成しておきます。IDEAプロジェクト作成後、IDEAの同期機能でホスト側に取り込みます。

uzuki05@dev $ rails new hoge --skip-test-unit

IDEA上でDeployment先登録

[Configure] > [Settings] > [Deployment]

リモートホストの接続情報を登録。先に登録しておくことで次のリモートインタプリタ登録で接続情報入力を省略できます。

Deployment

IDEA上でリモートインタプリタ登録

[Configure] > [Project Defaults] > [Project Structure]

[Add New SDK] > [Ruby SDK] > [New Remote]

[Fill from deployment server settings]から先ほど登録した接続情報を自動設定できます。

Configure Remote Ruby Interpreter

[OK]を押すと、インストール済みのgemの情報を取得したりするので、インストールされているgemの数によってはしばらく待ちます。

登録できたら[OK]。

Project Structure

プロジェクト作成

New Project

Create

転送設定

[Tool] > [Deployment] > [Configuration]

左ペインで登録したデプロイ先を選択し、[Mappings]タブを開きます。

  • [Use this server as default]有効に
  • [Deployment path on server デプロイ先名]は作成したRailsアプリのルートディレクトリ

Deployment Configuration

続いて、

[Tool] > [Deployment] > [Options...]

  • [Upload changed files automatically to the default server]を「On explicit save action」

Deployment Options

Railsアプリケーションダウンロード

左のProjectペインで、[プロジェクト名(ここでは「hoge」)を右クリック] > [Deployment] > [Download from デプロイ先名]

Download from

IDEAにより、リモートホスト上から生成されたRailsアプリが取り込まれます。

Download

bundle install

[Tools] > [Bundler] > [Install]

開発サーバ起動

[Deployment: プロジェクト名]実行。

Development server

無事リモートホストでサーバが起動しました。

Development log

VirtualBoxはポートフォワーディングが楽ですね。

App

Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

therubyracerを入れればOK。

Gemfile

# 追記
gem 'therubyracer', '~> 0.12.1'

リモートホストに転送(「On explicit save action」の設定で保存時に自動転送されているはずです)後、

[Tools] > [Bundler] > [Install]

で無事インストール完了。

次回は、リモートインタプリタでデバッガを使ってみます。 →IntelliJ IDEA 13.1 + Ruby plugin 6.5.0.20140314 DE リモートデバッグ on Rails