SlideShare a Scribd company logo
#6 Ruby on Rails. Пользовательский
интерфейс
Вьюшки, стили, скрипты
Денис Калесников, главный программист Мэйк
make.st
План
1. Assets
a. Подключение фреймворка Twitter Bootstrap (практика)
2. Шаблонизаторы
a. erb
b. haml
c. slim (практика)
UI в веб-приложении
1. Непосредственно html-документ
2. Стили оформления
3. javascript - интерактивность и удобства для пользователя
4. Фоновые изображения и иконки
5. Подключаемые шрифты
2-5 в терминах Ruby on Rails называются assets (материал)
Проблема - где складывать и как подключать ассеты.
Практическое задание №1
Для изучения подключения ассетов в Rails-приложение, добавим в наш
проект twitter bootstrap.
Сперва получим результат, а затем разберем - что как работает.
Подготовка учебного проекта
1. Переходим в папку с проектом cd ruby_lesson1
2. Выполняем команду git stash before_lesson_6
3. Выполняем команду git pull
Twitter Bootstrap
Bootstrap (также известен как Twitter Bootstrap) — свободный набор
инструментов для создания сайтов и веб-приложений. Включает в себя
HTML и CSS шаблоны оформления для типографики, веб-форм, кнопок,
меток, блоков навигации и прочих компонентов веб-интерфейса, включая
JavaScript-расширения.
Оф. сайт http://getbootstrap.com/
Основные фичи
1. 12-столбцовая сетка. Очень удобна при взаимодействии дизайнера и
верстальщика
2. Типографика http://getbootstrap.com/css/#type
3. Формы http://getbootstrap.com/css/#forms
4. Кнопки http://getbootstrap.com/css/#buttons
5. Меню http://getbootstrap.com/components/#navbar
3 способа добавить в проект
1. Вручную, скачав файлы с оф. сайта.
a. Разместите их в папке vendor
2. Gem https://github.com/twbs/bootstrap-sass
3. Gem https://github.com/seyhunak/twitter-bootstrap-rails
Преимущество использования гема перед подключением файлов вручную -
bundler будет добавлять в проект все свежие обновления и исправления
ошибок, в противном случае это придется делать, вручную - самому.
Попробуем использовать гем twitter-bootstrap-rails. Этот гем помимо чистого
бутстрапа предоставляет полезные хелперы.
Подключение в наш проект
1. Добавляем в Gemfile и запускаем установочный генератор
2. Перегенерируем главный макет app/views/layouts/application
3. Используем хелперы меню
a. Добавить пункт меню Работники
b. Выпадающее меню справочники
4. Настроим верстку таблицы с работниками http://getbootstrap.
com/css/#tables
5. Настроим верстку форм http://getbootstrap.com/css/#forms
Стили в Ruby on Rails
Стили могут размещаться в
1. app/assets/stylesheets
2. lib/assets/stylesheets
3. vendor/assets/stylesheets
Сборка стилей.
В большом сложном проекте, стили будут разделены на файлы и
сгруппированы по директория. Однако, в веб-приложениях часто принято -
делать сборку всех файлов и отдавать ее пользователю одним файлом.
В ROR для этого создается отдельный файл стилей(манифест, по-умолчанию
application.css) в котором с помощью специального синтаксиса указывается
какие файлы и директории следует добавить в сборку.
Сборка подключается в основном шаблоне (по умолчанию layouts/application.
html.erb) с помощью метода stylesheet_link_tag(‘манифест’)
Сборка стилей. Подключение компонентов
/* ...
*= require
*= require_directory
*= require_self
*= require_tree .
*/
Подключение javascript
Происходит аналогично стилям. Скрипты размещаются в:
1. app/assets/javascripts
2. lib/assets/javascripts
3. vendor/assets/javascripts
Скрипты подключаются в шаблоне с помощью вызова метода
javascript_include_tag(“манифест”)
Перерыв
Вывод изображений
Разумеется, изображения должны храниться в директории public. Но в Rails,
изображения используемые для оформления (фон, иконка, и просто забитое
в верстку изображение) помещаются в директорию app/assets/images
В режиме разработки сервер отдаст нужный файл, как будто он лежит в
директории public.
В процессе развертывания сайта Rails положит этот файл в директорию
public, и в боевой среде этот файл будет отдаваться сервером статики
(например, nginx)
Практическое задание 2
Вывести картинку на главной странице.
1. Подключить локальную картинку
2. Подключить удаленную картинку. Можно отсюда http://getbootstrap.
com/css/#forms - этот сервис можно использовать для веб-разработки
HTML-документ
Отвечая на запрос пользователя, Rails:
1. ищет и рендерит вьюху
2. ищет и рендерит макет подставляя в него результат рендеринга макета
Макеты хранятся в папке app/views/layouts. По-умолчанию - это applicaton.html.
erb
Вьюха внутри макета
Шаблоны
Шаблон состоит из html-кода документа + управляющие команды на языке
Ruby. Модуль, занимающийся преобразованием шаблона в HTML-документ
называется шаблонизатор. По-умолчанию используется ERB - обычный HTML
+ ruby-инъекции
В нашем приложении можно рассмотреть код вывода списка всех
работников.
Альтернативные шаблонизаторы
Разумеется разработчики постарались сократить размеры исходного кода
шаблонов и время их написания. Таким образом появилось достаточно много
шаблонизаторов, мы рассмотрим 2 самых популярных:
1. haml
2. slim
HAML
http://haml.info/
SLIM
http://slim-lang.com/
По сути, это просто HTML без <> скобок, в котором используются отступы для
обозначения вложенных элементов.
Мы будем использовать его, так как он достаточно удобный и более
производителен чем haml.
Практическое задание 3
1. Подключить гем slim, slim-rails
2. Переделать вьюху со списком сотрудников в slim.
3. Можно использовать гем https://github.com/slim-template/html2slim
Спасибо за внимание!
Денис Калесников, главный программист Мэйк
make.st

More Related Content

PDF
Ruby on Rails. Работа с моделями — продолжение
PDF
Первые страницы на Ruby on Rails
PDF
Ограничение доступа в ruby on rails
PDF
Ruby on Rails. Работа с моделями
PDF
Spring the Ripper by Evgeny Borisov
PPTX
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
PDF
Как мы делаем модули PHP в Badoo – Антон Довгаль
Ruby on Rails. Работа с моделями — продолжение
Первые страницы на Ruby on Rails
Ограничение доступа в ruby on rails
Ruby on Rails. Работа с моделями
Spring the Ripper by Evgeny Borisov
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Как мы делаем модули PHP в Badoo – Антон Довгаль

What's hot (20)

PPTX
Опыт эксплуатации большого проекта на Ruby
PDF
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
ODP
Top10 доводов против языка Ruby
PDF
Лекция #6. Введение в Django web-framework
PDF
C++ Базовый. Занятие 01.
PPT
Введение в Spring
ODP
Ruby on Rails for noobs
PPT
Воюем за ресурсы (ZFConf2011)
PPTX
Система обработки бизнес-логики server-side приложения на Groovy
PPTX
Зачем нужна Scala?
PPT
Drupal организация разработки
PPT
Drupal -organizaciya_razrabotki
ODP
Скриптовой язык Groovy и его применение в рамках разработки ПО
PDF
REPL в Node.js: улучшаем быт разработчик
PPT
Groovy
PPTX
C++ CoreHard Autumn 2018. Метаклассы: воплощаем мечты в реальность - Сергей С...
PPT
Сервлеты
PPTX
Html лаб 2
PDF
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
PDF
Компиляция скриптов PHP. Алексей Романенко
Опыт эксплуатации большого проекта на Ruby
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Top10 доводов против языка Ruby
Лекция #6. Введение в Django web-framework
C++ Базовый. Занятие 01.
Введение в Spring
Ruby on Rails for noobs
Воюем за ресурсы (ZFConf2011)
Система обработки бизнес-логики server-side приложения на Groovy
Зачем нужна Scala?
Drupal организация разработки
Drupal -organizaciya_razrabotki
Скриптовой язык Groovy и его применение в рамках разработки ПО
REPL в Node.js: улучшаем быт разработчик
Groovy
C++ CoreHard Autumn 2018. Метаклассы: воплощаем мечты в реальность - Сергей С...
Сервлеты
Html лаб 2
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
Компиляция скриптов PHP. Алексей Романенко
Ad

Similar to Ruby on Rails. Пользовательский интерфейс (20)

PPT
Ruby On Rails: Web-разработка по-другому!
PPTX
системы сборок проектов
PDF
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
PPTX
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
PDF
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
PPT
Trening modul2-webinar11
PPTX
Алексей Горобец - Building Drupal Distributions. Why? When? and How?
PDF
Headless Drupal на примере Drupal 8 и React
ODP
Создаем Drupal дистрибутив: от идеи до сопровождения
PPT
Drupal Vs Other
PDF
Корпоративное приложение на Rails
PDF
YaC 2013 Notes
PDF
Создание дистрибутивов Drupal. Почему, зачем и как?
PDF
Zend Framework и мультиязычность
PPTX
Мастер-класс "Привет, Drupal"
PPTX
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
PPT
Drupal и возможности его применения
PPTX
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
PDF
C# Desktop. Занятие 01.
PDF
Dreamwever cs3
Ruby On Rails: Web-разработка по-другому!
системы сборок проектов
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
Олена Ольховик — Від frontend розробки до Drupal-темізації. Основи і специфіка
Lviv Euro Drupal Camp 2015_От front-end разработки к темизации в Drupal
Trening modul2-webinar11
Алексей Горобец - Building Drupal Distributions. Why? When? and How?
Headless Drupal на примере Drupal 8 и React
Создаем Drupal дистрибутив: от идеи до сопровождения
Drupal Vs Other
Корпоративное приложение на Rails
YaC 2013 Notes
Создание дистрибутивов Drupal. Почему, зачем и как?
Zend Framework и мультиязычность
Мастер-класс "Привет, Drupal"
Drupal Camp Kyiv 2013. Удобная разработка drupal проекта. Полезные модули.
Drupal и возможности его применения
Спецкурс-2015. Занятие 04 (часть 1). Конфигурации, сборка проекта, автоматизи...
C# Desktop. Занятие 01.
Dreamwever cs3
Ad

More from Digital-агентство Мэйк (14)

PDF
Системные коммуникации с пациентом
PDF
Как эффективно развивать и удерживать нужных сотрудников
PDF
Индивидуальный тюнинг и кастомизации своего продукта как новая стратегия раб...
PDF
12 эффективных инструментов для отрыва от конкурентов
PDF
4 шага к счастью клиента
PDF
Современные тенденции против устаревших стереотипов
PDF
Продвижение в соцсетях: 13 эффективных способов
PDF
Угрозы безопасности в интернете
PDF
Crm системы: клиент в центре внимания
PDF
Ruby on Rails. Ajax-обработка html-форм
PDF
Системный подход к привлечению клиентов
PDF
Cоциальные сети для молодёжных объединений
PDF
Эффективный сайт медицинского учреждения
PDF
Контекстная реклама: от теории к практике
Системные коммуникации с пациентом
Как эффективно развивать и удерживать нужных сотрудников
Индивидуальный тюнинг и кастомизации своего продукта как новая стратегия раб...
12 эффективных инструментов для отрыва от конкурентов
4 шага к счастью клиента
Современные тенденции против устаревших стереотипов
Продвижение в соцсетях: 13 эффективных способов
Угрозы безопасности в интернете
Crm системы: клиент в центре внимания
Ruby on Rails. Ajax-обработка html-форм
Системный подход к привлечению клиентов
Cоциальные сети для молодёжных объединений
Эффективный сайт медицинского учреждения
Контекстная реклама: от теории к практике

Ruby on Rails. Пользовательский интерфейс

  • 1. #6 Ruby on Rails. Пользовательский интерфейс Вьюшки, стили, скрипты Денис Калесников, главный программист Мэйк make.st
  • 2. План 1. Assets a. Подключение фреймворка Twitter Bootstrap (практика) 2. Шаблонизаторы a. erb b. haml c. slim (практика)
  • 3. UI в веб-приложении 1. Непосредственно html-документ 2. Стили оформления 3. javascript - интерактивность и удобства для пользователя 4. Фоновые изображения и иконки 5. Подключаемые шрифты 2-5 в терминах Ruby on Rails называются assets (материал) Проблема - где складывать и как подключать ассеты.
  • 4. Практическое задание №1 Для изучения подключения ассетов в Rails-приложение, добавим в наш проект twitter bootstrap. Сперва получим результат, а затем разберем - что как работает.
  • 5. Подготовка учебного проекта 1. Переходим в папку с проектом cd ruby_lesson1 2. Выполняем команду git stash before_lesson_6 3. Выполняем команду git pull
  • 6. Twitter Bootstrap Bootstrap (также известен как Twitter Bootstrap) — свободный набор инструментов для создания сайтов и веб-приложений. Включает в себя HTML и CSS шаблоны оформления для типографики, веб-форм, кнопок, меток, блоков навигации и прочих компонентов веб-интерфейса, включая JavaScript-расширения. Оф. сайт http://getbootstrap.com/
  • 7. Основные фичи 1. 12-столбцовая сетка. Очень удобна при взаимодействии дизайнера и верстальщика 2. Типографика http://getbootstrap.com/css/#type 3. Формы http://getbootstrap.com/css/#forms 4. Кнопки http://getbootstrap.com/css/#buttons 5. Меню http://getbootstrap.com/components/#navbar
  • 8. 3 способа добавить в проект 1. Вручную, скачав файлы с оф. сайта. a. Разместите их в папке vendor 2. Gem https://github.com/twbs/bootstrap-sass 3. Gem https://github.com/seyhunak/twitter-bootstrap-rails Преимущество использования гема перед подключением файлов вручную - bundler будет добавлять в проект все свежие обновления и исправления ошибок, в противном случае это придется делать, вручную - самому. Попробуем использовать гем twitter-bootstrap-rails. Этот гем помимо чистого бутстрапа предоставляет полезные хелперы.
  • 9. Подключение в наш проект 1. Добавляем в Gemfile и запускаем установочный генератор 2. Перегенерируем главный макет app/views/layouts/application 3. Используем хелперы меню a. Добавить пункт меню Работники b. Выпадающее меню справочники 4. Настроим верстку таблицы с работниками http://getbootstrap. com/css/#tables 5. Настроим верстку форм http://getbootstrap.com/css/#forms
  • 10. Стили в Ruby on Rails Стили могут размещаться в 1. app/assets/stylesheets 2. lib/assets/stylesheets 3. vendor/assets/stylesheets
  • 11. Сборка стилей. В большом сложном проекте, стили будут разделены на файлы и сгруппированы по директория. Однако, в веб-приложениях часто принято - делать сборку всех файлов и отдавать ее пользователю одним файлом. В ROR для этого создается отдельный файл стилей(манифест, по-умолчанию application.css) в котором с помощью специального синтаксиса указывается какие файлы и директории следует добавить в сборку. Сборка подключается в основном шаблоне (по умолчанию layouts/application. html.erb) с помощью метода stylesheet_link_tag(‘манифест’)
  • 12. Сборка стилей. Подключение компонентов /* ... *= require *= require_directory *= require_self *= require_tree . */
  • 13. Подключение javascript Происходит аналогично стилям. Скрипты размещаются в: 1. app/assets/javascripts 2. lib/assets/javascripts 3. vendor/assets/javascripts Скрипты подключаются в шаблоне с помощью вызова метода javascript_include_tag(“манифест”)
  • 15. Вывод изображений Разумеется, изображения должны храниться в директории public. Но в Rails, изображения используемые для оформления (фон, иконка, и просто забитое в верстку изображение) помещаются в директорию app/assets/images В режиме разработки сервер отдаст нужный файл, как будто он лежит в директории public. В процессе развертывания сайта Rails положит этот файл в директорию public, и в боевой среде этот файл будет отдаваться сервером статики (например, nginx)
  • 16. Практическое задание 2 Вывести картинку на главной странице. 1. Подключить локальную картинку 2. Подключить удаленную картинку. Можно отсюда http://getbootstrap. com/css/#forms - этот сервис можно использовать для веб-разработки
  • 17. HTML-документ Отвечая на запрос пользователя, Rails: 1. ищет и рендерит вьюху 2. ищет и рендерит макет подставляя в него результат рендеринга макета Макеты хранятся в папке app/views/layouts. По-умолчанию - это applicaton.html. erb
  • 19. Шаблоны Шаблон состоит из html-кода документа + управляющие команды на языке Ruby. Модуль, занимающийся преобразованием шаблона в HTML-документ называется шаблонизатор. По-умолчанию используется ERB - обычный HTML + ruby-инъекции В нашем приложении можно рассмотреть код вывода списка всех работников.
  • 20. Альтернативные шаблонизаторы Разумеется разработчики постарались сократить размеры исходного кода шаблонов и время их написания. Таким образом появилось достаточно много шаблонизаторов, мы рассмотрим 2 самых популярных: 1. haml 2. slim
  • 22. SLIM http://slim-lang.com/ По сути, это просто HTML без <> скобок, в котором используются отступы для обозначения вложенных элементов. Мы будем использовать его, так как он достаточно удобный и более производителен чем haml.
  • 23. Практическое задание 3 1. Подключить гем slim, slim-rails 2. Переделать вьюху со списком сотрудников в slim. 3. Можно использовать гем https://github.com/slim-template/html2slim
  • 24. Спасибо за внимание! Денис Калесников, главный программист Мэйк make.st