金魚亭日常

読書,ガジェット,競技プログラミング

Windows に Rails をインストールする

環境は,

  • Windows 10 Pro 1703 build 15063.483
  • Ruby 2.4.1 (RubyInstaller 2.4.1-2 x64)
  • MSYS2

Ruby 2.4 をインストール

まず,RubyInstaller で Ruby 2.4.1 をインストール.

といっても,以前に Ruby 2.4.0-8 をインストールしていたので,それを最新版にする.

アンインストールは必要なくて,Ruby 2.4.1-2 (x64) のインストーラを実行すると,上書きインストールされた.

MSYS2 は別途インストールしてあるので,最後のチェックは外す. なお,MSYS2の再設定は必要なかった.

また,インストールしてあった gem もそのままだった.

>ridk version
---
ruby:
  path: C:/Ruby/Ruby24-x64
  version: 2.4.1
  platform: x64-mingw32
ruby_installer:
  package_version: 2.4.1-2
  git_commit: a2667ee
msys2:
  path: c:\msys64
  title: MSYS2 64bit
  version: '20161025'
cc: x86_64-w64-mingw32-gcc (Rev2, Built by MSYS2 project) 6.3.0
sh: GNU bash, version 4.3.46(2)-release (x86_64-pc-msys)

Rails をインストール

Bundler を使う

  • Gemfile
# frozen_string_literal: true
source "https://rubygems.org"

gem "rails"

インストール

>bundle install --path vendor/bundle

...

>bundle exec rails -v
Rails 5.1.2

インストール後の確認

無事にエラーもなくインストールされたので,以下の記事を参考にインストール後の確認する.

RubyInstaller2でWindows環境にRuby 2.4 + Rails 5.0.2をインストールする

rails newすると,bundle install が実行されてシステム全体の方にインストールされてしまうので,ここ を参考にして,

> mkdir rails-sandbox
> copy Gemfile rails-sandbox
> cd rails-sandbox
> bundle install --path vendor/bundle
> bundle exec rails new .
> bundle exec rails s

http://localhost:3000 にアクセスして確認

Screen Shot 2017-07-22 at 23.48.47-fullpage.png

scaffold画面の作成

>bundle exec rails g scaffold Blog title content:text
>bundle exec rails db:migrate
>bundle exec rails s

http://localhost:3000/blogs にアクセスして確認すると,

ActionView::Template::Error (TypeError: オブジェクトでサポートされていないプロパティまたは
メソッドです。):
    4:     <title>RailsSandbox</title>
    5:     <%= csrf_meta_tags %>
    6:
    7:     <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track'
: 'reload' %>
    8:     <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
    9:   </head>
   10:

というエラーが出たが,これはNode.js がインストールされてないかららしいので,インストール.

>node -v
v6.11.1

>npm -v
3.10.10

インストールしたら,コマンドプロンプトを再度起動し,

>bundle exec rails s

http://localhost:3000/blogs にアクセスして確認

Screen Shot 2017-07-22 at 23.56.18-fullpage.png

Screen Shot 2017-07-22 at 23.56.42-fullpage.png

Screen Shot 2017-07-22 at 23.56.51-fullpage.png

その他

irb

日本語の入力は普通にできた

rails console

以下のエラーで起動しなかったが,

C:/Ruby/Ruby24-x64/lib/ruby/site_ruby/rbreadline.rb:6135:in `delete': invalid byte sequence in UTF-8 (ArgumentError)

~/.irbrc に元からあった

require 'irb/ext/save-history'
require 'irb/completion'

IRB.conf[:SAVE_HISTORY] = 200

コメントアウトすると起動した.

Issue に挙がっているからそのうちなおるかもしれない(Pull request もある)

Invalid byte sequence in UTF-8 when running console

日本語の入力に関しては,

IRB.conf[:USE_READLINE] = false

.irbrc に書いても書かなくても,

irb(main):001:0> puts "あ"
あ
=> nil
irb(main):002:0> s = "あ"
=> "\x{82A0}"

という結果だった