Rails 5.0.0-beta1が出た && API mode使ってみた
今朝、ついに出てましたーー
Rails 5.0.0.beta1: Action Cable, API mode, Rails command, https://t.co/Q1Q85ciiNM – It's out! "gem install rails -v 5.0.0.beta1" and party!
— DHH (@dhh) 2015, 12月 18
ということで、Release Notesは以下に。
Riding Rails: Rails 5.0.0.beta1: Action Cable, API mode, Rails command
冒頭で、
Rails 5.0! Can you believe it? We only just celebrated the tenth anniversary of Rails 1.0 a few days ago. Time flies when you're having fun with good friends, and we've never had more fun or better friends in the Rails community, so no wonder it's going swoosh!
なんて言ってますね。Rails 10周年なのか...すごいな...。
Rails4.0がリリースされたのっていつだっけなと調べてみたらこんなのがでてきました。Googleすごい、じゃなくてRailsすごい(?)
Rails4のリリースが2013年の6/25なら、頑張り目に言っても僕はRails4系からしか触ってないことになるな...笑
そして5.0のRelease Notesの、
Now this is just the first beta release, but Rails 5.0.0.beta1 is already running Basecamp 3 in production.
というのがまたすごい。笑
さすがCTOの会社です。。。
ということで余談はこんなとこにして作ってみます。。
参考サイト
手順
Rails5は、Rubyの2.2以上のサポートになります。なかなか攻めるなという感じですが、Rubyのバージョンに追従するRails Coreチームの意向が伺えて、ひたすらすごいなという感じです。Rubyがそれを支えるFWと断絶を起こさずに断続的にバージョンアップしていけるのも、Railsチームの理解あってのことなのかなぁと感じ入ります。。。
ということで、まずはRailsの5.0.0.beta1をインストール。
$ gem install rails -v 5.0.0.beta1
出力全部載せてみます。
$ rails new rails5-api-sample --api create create README.md create Rakefile create config.ru create .gitignore create Gemfile create app create app/assets/config/manifest.js create app/assets/javascripts/application.js create app/assets/javascripts/cable.coffee create app/assets/stylesheets/application.css create app/channels/application_cable/channel.rb create app/channels/application_cable/connection.rb create app/controllers/application_controller.rb create app/helpers/application_helper.rb create app/jobs/application_job.rb create app/mailers/application_mailer.rb create app/models/application_record.rb create app/views/layouts/application.html.erb create app/views/layouts/mailer.html.erb create app/views/layouts/mailer.text.erb create app/assets/images/.keep create app/assets/javascripts/channels/.keep create app/controllers/concerns/.keep create app/models/concerns/.keep create bin create bin/bundle create bin/rails create bin/rake create bin/setup create bin/update create config create config/routes.rb create config/application.rb create config/environment.rb create config/secrets.yml create config/environments create config/environments/development.rb create config/environments/production.rb create config/environments/test.rb create config/initializers create config/initializers/active_record_belongs_to_required_by_default.rb create config/initializers/application_controller_renderer.rb create config/initializers/assets.rb create config/initializers/backtrace_silencers.rb create config/initializers/callback_terminator.rb create config/initializers/cookies_serializer.rb create config/initializers/cors.rb create config/initializers/filter_parameter_logging.rb create config/initializers/inflections.rb create config/initializers/mime_types.rb create config/initializers/request_forgery_protection.rb create config/initializers/session_store.rb create config/initializers/wrap_parameters.rb create config/locales create config/locales/en.yml create config/redis create config/redis/cable.yml create config/boot.rb create config/database.yml create db create db/seeds.rb create lib create lib/tasks create lib/tasks/.keep create lib/assets create lib/assets/.keep create log create log/.keep create public create public/404.html create public/422.html create public/500.html create public/favicon.ico create public/robots.txt create test/fixtures create test/fixtures/.keep create test/fixtures/files create test/fixtures/files/.keep create test/controllers create test/controllers/.keep create test/mailers create test/mailers/.keep create test/models create test/models/.keep create test/helpers create test/helpers/.keep create test/integration create test/integration/.keep create test/test_helper.rb create tmp create tmp/.keep create tmp/cache create tmp/cache/assets create vendor/assets/stylesheets create vendor/assets/stylesheets/.keep remove app/assets remove lib/assets remove tmp/cache/assets remove vendor/assets remove app/helpers remove test/helpers remove app/views remove app/assets/javascripts remove config/initializers/assets.rb remove config/initializers/session_store.rb remove config/initializers/cookies_serializer.rb remove config/initializers/request_forgery_protection.rb
一回作ってから消すのか笑
assets、helpers、views、その他session、cookie関連のものが削除されてますね。
あとapp/channels
も作成されてます。これはActionCable用のディレクトリですね。
では、Taskというモデルをscaffoldしてみます。
$ bin/rails g scaffold Task name:string duration:integer invoke active_record create db/migrate/20151218220423_create_tasks.rb create app/models/task.rb invoke test_unit create test/models/task_test.rb create test/fixtures/tasks.yml invoke resource_route route resources :tasks invoke scaffold_controller create app/controllers/tasks_controller.rb invoke test_unit create test/controllers/tasks_controller_test.rb Running via Spring preloader in process 5928
viewやassetsが生成されてないことがわかります。
そんでdb/seeds.rb
に適当にシードのレコードをぶっこみます。
# db/seeds.rb 10.times do Task.create( name: "task", duration: 15 ) end
/tasks
にアクセスしてみると...
JSONが吐かれてますね!
まだ全く核になるような部分には触れれてみませんが、もうちょっと使ってみて便利そうな使い方見つけたらまた記事を書こうと思います。とりあえず個人のプロダクトをRails5.0.0.beta1にあげてみます。