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
Bootstrap 3. Адаптивная верстка для WordPress
PDF
Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
PPTX
Little Service in 2h
PPTX
Rails for dummies
PPTX
Erb vs haml vs slim
PDF
Наверстайте мне упущенное — Сергей Козлов
PDF
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
PPT
Презентация: 1С-Bitrix — как начать
PDF
Антон Виноградов — БЭМ on Rails
PPT
Ruby on Rails снижаем стоимость разработки
PDF
Вёрстка в стиле Ruby: HAML, SASS, Compass, CoffeeScript, Jammit
PPTX
Создание веб-сайта. Курс молодого бойца
PDF
Сергей Зиновьев и Игорь Ходырев - Ruby on Rails
PDF
Корпоративное приложение на Rails
KEY
Migrate!
PDF
WebCamp: Developer Day: Разработка фронтенда: от кузницы до металлургического...
PDF
Лекция 4 Client-side
PPT
Ug и twitter bootstrap что дальше
Ruby On Rails: Web-разработка по-другому!
Bootstrap 3. Адаптивная верстка для WordPress
Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
Little Service in 2h
Rails for dummies
Erb vs haml vs slim
Наверстайте мне упущенное — Сергей Козлов
Виталий Харисов "История создания БЭМ. Кратко, сбивчиво и неполно"
Презентация: 1С-Bitrix — как начать
Антон Виноградов — БЭМ on Rails
Ruby on Rails снижаем стоимость разработки
Вёрстка в стиле Ruby: HAML, SASS, Compass, CoffeeScript, Jammit
Создание веб-сайта. Курс молодого бойца
Сергей Зиновьев и Игорь Ходырев - Ruby on Rails
Корпоративное приложение на Rails
Migrate!
WebCamp: Developer Day: Разработка фронтенда: от кузницы до металлургического...
Лекция 4 Client-side
Ug и twitter bootstrap что дальше
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