Windows10 Anniversary Updateのおかげでコマンドプロンプトでubuntuを利用できるようになったみたいです
今回はそれを利用してwindowsにruby, ruby on rails の環境を作ってみたいと思います

Windows10 Anniversary Upudateをダウンロードしてインストール

まだアップデートを適用していない場合はここからダウンロードしてインストールします
https://support.microsoft.com/ja-jp/help/12387/windows-10-update-history
空き容量が 20GB以上必要みたいです
3時間くらいかかりました。
インストール後は4G程度消費されていました。

Bashの有効化、開発者モードをオンにする

コントロールパネル>プログラムと機能>Windowsの機能の有効化または無効化
を選択して
Windows Subsystem for Linux(Beta)
にチェックを入れます。
ぼくの場合はもうこれで使えたのですが、
開発者モードというのがすでにオンになってたからっぽいので、
一般的には
設定アプリ>更新とセキュリティ>開発者向け
を選択して
開発者モード
のラジオボタンをオンにするみたいです

bashを起動する

コマンドプロンプトを起動し
bash
ubuntuをインストールするといわれるので
yを押しインストールを始める
ユーザー名とパスワードを設定します

おおおー!bashが使える!なんか少し感動しました(笑)

Rubyをインストールしてみる

適当にインストール環境を整える

$ sudo apt-get update
$ sudo apt-get install git
$ sudo apt-get install curl g++ make
$ sudo apt-get install zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev
$ sudo apt-get install sqlite3 libsqlite3-dev nodejs

rbenv, ruby-build をインストールする

$ cd
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

~/.bashrcにrbenvのパスやら追記

export PATH=”$HOME/.rbenv/bin:$PATH”
eval “$(rbenv init -)”

rbenvでRuby2.3.1をインストール


$ rbenv install 2.3.1
すげー時間かかりました。寝てしまったので具体的な時間はわかりません。
$ rbenv global 2.3.1
$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768)

.gemrcも作っとく

$ cd
$ vim .gemrc
i を押してインサートモードで

install: --no-ri --no-rdoc 

update: --no-ri --no-rdoc 
 を入力し escを押した後 :wq enter で書き込み保存

Ruby on Rails のインストール

$ gem install rails --version="~> 4.2" 
$ rbenv rehash
$ rails -v
Rails 4.2.7.1

Railsアプリを作ってみる

$ rails new app1

これしたらいきなり怒られた。
bundlerのバージョンを1.12.5から1.12.3に下げたほうがいいらしい

ということでバージョンダウン

$ gem uninstall bundler
$ gem install bundler -v 1.12.3

これで rails new <appname>が通るようになった。

$ rails new app1
$ cd app1
$ rails s

ブラウザでhttp://localhost:3000 にアクセスするとレイルズサーバの稼働を確認できました。
めでたし

まとめ

とりあえず動きましたがこの先なんかバグに遭遇する気もします。
それでもWindowsでbashを使えるようになったのはかなり大きいですね。
わざわざMacやらLinux(内部的にはubuntuを導入していますが)を使わなくていいのは
Windows使ってる方にはうれしいかもしれません。

おわり

この間 deviseのインストールについて書きましたが
Herokuというrailsアプリをデプロイするのに都合の良すぎるサーバサービスを使った所エラーでハマりました。

症状としては、そもそもRailsが動かなかったので下記コマンドでエラーログを見ると

$ heroku run rails c
~~ 中略

/app/controllers/Users/confirmations_controller.rb:1:in `<top (required)>': uninitialized constant Users (NameError)
~~以下略

と言った感じ。

結構悩んだのですが、
結局 コントローラーの入っているフォルダが大文字になっているのが原因でした。

全部リネームしてpushしたら動きました。

めでたし

言わずと知れた有名 gem ‘devise’ ユーザー管理が必要なアプリならば必ず入れますよね。

何回か使ってはいるんですけど

いつも忘れてググるので記事にしました。

Gemfileにdevise追加

gem     'devise'

deviseをインストール

rails g devise:install

今回はViewを分けたいので deviseの設定を次のように弄ります。
config/initialisers/devise.rb

- config.scoped_views = false
+ config.scoped_views = true

モデル、ビュー、コントローラーを別々につくる

$ rails g devise player
$ rails g devise:views players
$ rails g devise:controllers players
$ rails g devise admin
$ rails g devise:views admins
$rails g devise:controllers admins

コントローラー作った時に教えて貰えるとおりにcofig/route.rbを変更

devise_for :players, controllers: {
 sessions: 'presenters/sessions',
 passwords: 'presenters/passwords',
 registrations: 'presenters/registrations'
 }
 devise_for :admins, controllers: {
 sessions: 'admins/sessions',
 passwords: 'admins/passwords',
 registrations: 'admins/registrations'
 }

これで何もかもが別々のユーザーモデルができた。

icon

はじめまして
鈴木と申します

勢いでブログを始めました。
書く内容は決めていませんが

  • 技術系の備忘録
  • プログラムの紹介
  • 映画やマンガやゲーム、本の感想
  • 買ったモノやら欲しいモノの紹介
  • ただの日記

なんかを書こうかと思っています

なにわともあれ
しばらく適当に書いてみて様子を見ようと思います

おわり