読者です 読者をやめる 読者になる 読者になる

元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

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