Что нового в Ruby on Rails 5.0
Изначально релиз Ruby on Rails 5.0 был запланирован на весну 2015 года и много раз сдвигался, последний раз с 23 февраля на 16 марта 2016. То есть, возможно, это не последний перенос сроков. Тем не менее, Ruby on Rails 5.0 на сегодня имеет статус beta3 и работает на продакшене Basecamp.
- Поддерживается только ruby 2.2.2+
- Веб-сервер Webrick заменен на Puma на 16 потоков по умолчанию
- Все
rake
команды заменены наrails
, например:rails db:migrate
Turbolinks 3
Текущая версия turbolinks обновляет содержимое всей страницы через ajax без повторного обращения к статическим файлам css,js и т.д. Новая же версия позволяет выборочно изменять содержимое отдельных частей веб-страницы (через partials), причем делать это можно по инициативе сервера.
Комментарий:
Turbolinks 3 отныне — deprecated
, доступна здесь: https://github.com/turbolinks/turbolinks-classic
Официальная версия — Turbolinks 5, без partial-апдейтинга: https://github.com/turbolinks/turbolinks
Action Cable
Реализована поддержка Websockets, теперь можно делать полноценные single page application
без "танцев с бубном". Каналы, подписчики к ним на стороне клиента и так далее. Очень удобно.
Прекрасный видео туториал об использовании Action Cable – веб чат на Rails без обновления страницы.
API режим
Теперь есть возможность сделать приложение без HTML и JS частей по умолчанию – существенно быстрее и легче.
rails new backend --api
Создается приложение, которое сразу cконфигурировано для работы с JSON, а не HTML.
Sprockets 4
Добавлен файл app/assets/config/manifest.js
для управления прекомпиляцией статических файлов.
// JS and CSS bundles // //= link_directory ../javascripts .js //= link_directory ../stylesheets .css // Images and fonts so that views can link to them // //= link_tree ../fonts //= link_tree ../images
Еще обсуждается его конечное расположение и формат (js или yml), с финальным релизом будет понятно.
Ссылки по теме
http://blog.michelada.io/whats-new-in-rails-5
https://medium.com/evil-martians/the-rails-5-post-9c76dbac8fc#.9p0fpry5o
Самый новый видео подкаст об изменениях (с примерами)