Rails5を使ってみる

はじめに


とある要件があり、使用するFramework最近ブログネタに賑わっているRailsでということになった
せっかくなので、開発開始&リリースはいつになるのかという噂のRails5を使ってみることにした

開発変更時期にRails5もリリースされているだろうという多少の先を見越す形でもありますがw

準備


どうやら、後方互換とはなんだったのかの勢いで最新っぽいので、以下を準備します。

  • Ruby2.2.2以降のインストール
  • railsのリポジトリをclone

なにはともあれ、現時点の最新版だとスッキリした気分ですねw

1
$git clone https://github.com/rails/rails.git

まずはバージョン情報


昔はrailties/bin/railsだったのですが、railties/exe/rails変更になったようです
ちょっと焦りましたw

1
2
3
4
5
6
7
8
$./rails/railties/exe/rails -v
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- concurrent/map (LoadError)
  from /usr/local/var/rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  from /Users/moonstruckdrops/rails/activesupport/lib/active_support/inflector/inflections.rb:1:in `<top (required)>'
  from /usr/local/var/rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  from /usr/local/var/rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  from /Users/moonstruckdrops/rails/activesupport/lib/active_support/inflections.rb:1:in `<top (required)>'
    (省略)

どうやら、activesupport/activesupport.gemspecを見ると、
concurrent-rubyが足りなかったようなので追加します(正式版では無く、alpha版が必要です)

1
$gem install concurrent-ruby -v 1.0.0.pre5 --no-ri --no-rdoc

気を取り直してもう一度実行すると動作します

1
2
$./rails/railties/exe/rails -v
Rails 5.0.0.alpha

プロジェクト生成


せっかくなのでRails-APIオプションを使います
(api以外のオプションはお好みで設定してください)

1
$./rails/railties/exe/rails new my_app --api -d mysql -T --skip-javascript --skip-test-unit --skip-turbolinks

が、そのまま実行してもエラーになりますのでGemfileを修正します

  • railsは、cloneしたソースコードになるようにする
  • rack,arelはgit or cloneしたソースコードになるようにする

最終的にGemfileを以下のようにする(コメントのみ削除)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
source 'https://rubygems.org'

gem 'rack', path: '../rack'
gem 'arel', path: '../arel'

gem 'rails', '5.0.0.alpha', path: '../rails'
gem 'mysql2', '>= 0.3.18', '< 0.5'
# gem 'bcrypt', '~> 3.1.7'

# gem 'unicorn'

# gem 'capistrano-rails', group: :development

gem 'active_model_serializers', '~> 0.10.0.rc2'

# gem 'rack-cors'

group :development, :test do
  gem 'byebug'
end

group :development do
  gem 'spring'
end

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

起動する


ここは普段どおりにrackで起動します rails

1
2
3
4
5
6
7
8
9
$cd my_app
$bin/rails s
=> Booting WEBrick
=> Rails 5.0.0.alpha application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2015-11-06 00:00:05] INFO  WEBrick 1.3.1
[2015-11-06 00:00:05] INFO  ruby 2.2.2 (2015-04-13) [x86_64-darwin14]
[2015-11-06 00:00:05] INFO  WEBrick::HTTPServer#start: pid=14583 port=3000

ポイント


特に挙げることもないですが、 rails配下にあるgemspecファイルに目を通しておけば、インストールや起動に必須なgemがわかるので問題解決が早くなるということぐらいでしょうか