Знакомство с ruby on rails часть 2

Знакомство с Ruby on Rails / Хабр

знакомство с ruby on rails часть 2

Мастер-класс от Загира Рашитова и Антона Григорьева: «От идеи до прототипа за 2 часа. Знакомство с Ruby on Rails.» В. Конечно, полезно предварительное знакомство с тремя основными технологиями, XForms, DB2 pureXML и Ruby on Rails, но это не. Типичная разработка Ruby on Rails приложения состоит из следующих этапов: Анализ Да, действительно, при первом знакомстве Ruby может оттолкнуть. В итоге у вас есть 2 версии проекта, и чтобы объединить их, потребуется помнить кто, что и в каком файле менял. Скачать презентацию.

Если вы укажете номер версии для gem команды, Bundler автоматически установит последнюю версию. К сожалению, gem обновления может привести к путанице и поломке, так что в этом уроке мы обычно включаем номер рабочей версии. Например, последняя версия sqlite3-ruby gem не будет установлен на OS X Leopard, в то время как предыдущая версия работает отлично. Просто для безопасности сделайте следующие исключения: Также мы удалили ненужные строки комментариев.

Обратите внимание что если версия 1. Если вы работаете в Ubuntu Linux, вам может потребоваться установить несколько других пакетов на данный момент: Это может занять несколько минут, но когда это будет сделано наше приложение будет готово к запуску.

К счастью, Rails поставляется с программной командной строкой или скриптом, который запускает локальный веб-сервер, видимый только на вашем компьютере. Это специальный адрес означает, что с любого компьютера в локальной сети можно просматривать наше приложения, в частности, машина запускает сервер разработки. Мы можем увидеть результат посетив http: Мы удалим страницу по умолчанию и заменим его на вашу домашнюю страницу в последующем.

Модель-Представление-Контроллер MVC [ править ] Схематическое представление архитектуры модель-представление-контроллер На ранней стадии, полезно получить общие знания о работе Rails приложений.

Это намек на то,что Rails следует шаблону модель-представление-контроллер MVCкоторый разделяет "domain logic" или "business logic" от входной и представленной логикой, связанной с графическим пользовательским интерфейсом GUI.

В случае веб-приложений "domain logic" обычно состоит из data models для пользователей,статей, и продуктов, и GUI это только веб-страница в браузере. При взаимодействии с приложением Rails, браузер посылает запрос, который получает веб-сервер и передаёт на Rails контроллер, который отвечает за то, что делать. В некоторых случаях контроллер будет сразу генерировать шаблон, который конвертируется в HTML и отправляется обратно браузеру.

Чаще всего для динамических сайтов, контроллер взаимодействует с моделью, которая является объектом Ruby. Ruby в свою очередь представляет элемент сайта например, пользователя и отвечает за связь с базой данных. После вызова модели, контроллер генерирует шаблон и возвращает полную веб-страницу в браузер как HTML. Если это кажется немного абстрактным для вас, не беспокойтесь, мы будем часто возвращаться к этому разделу.

Кроме того в будущем вы получите более подробное представление о MVC в контексте демо приложения. Наконец на последующих стадиях мы будем использовать все аспекты MVC. Управление версиями с помощью Git[ править ] Теперь у нас есть рабочее Rails приложение и следующим шагом мы поместим исходный код нашего приложения под систему управления версиями.

С помощью системы управления версиями вы сможете следить за изменениями в коде вашего проекта, легко сотрудничать с другими разработчиками, и откатить любые ошибки. Использование контроля версий является необходимым навыком для любого разработчика программного обеспечения. Есть много вариантов для управления версиями, но Rails сообщество в значительной степени ориентировано на Gitсистему управления версиями разработанной Линусом Торвальдсом для размещения ядра Linux.

Установка и настройка[ править ] После установки Git, необходимо выполнить множество дополнительных шагов. Это системная установка, которая означает что вам необходимо сделать это на своем компьютере всего один раз: Последним этапом установки можно дополнительно задать текстовый редактор, который Git будет использовать для комментирования сообщений.

При использовании графического редактора, например TextMategVimили MacVimвам необходимо убедиться в том что редактор прикреплен правильно: Установка первого репозитория[ править ] Теперь мы подошли к тому, что вам необходимо проделывать каждый раз, как вы создаете новый репозиторий в этой книге это случается всего один раз, но может быть вам понадобится это в будущем Сперва перейдите в корневую директорию первого приложения и инициализируйте новый репозиторий: Здесь есть несколько затруднений, например: Например, Rails создает файлы журнала для записи поведения приложения; эти файлы часто меняются, и нам не нужно, чтобы наша система управления версиями обновляла их постоянно.

Git имеет простой механизм, чтобы игнорировать такие файлы: Rails по умолчанию создает в корневой директорию. Большинство из этих файлов часто автоматически изменяются, поэтому их неудобно включать в систему управления версиями. Данных игнорируемых файлов. Если вы хотите использовать этот листинг, то просто откройте. Вы можете добавить все файлы кроме тех, которые соответствуют шаблонам игнорирования в gitignore. Эта команда добавляет файлы проекта на промежуточный уровень, в котором они содержатся до изменения в вашем проекте, вы можете увидеть, какие файлы находятся на промежуточном уровне используя команду: Результат на самом деле длинный, и здесь вертикальные точки это пропущенные строки.

Урок 1 (часть 1): Среда разработки. Установка и настройка RubyMine

Чтобы сообщить Git, что вы хотите сохранить изменения, используете следующую фиксирующую команду: Где -m позволяет добавить комментарий для фиксирования, если вы опустите -m, то Git откроет редактор, который вы указали в качестве стандартного и даст вам ввести там комментарий. Важно запомнить что Git фиксация локальна, записывается только на ваш компьютер. Это в отличие от другой системы управления, под названием Subversion, в которой обязательно вносятся изменения на удаленном хранилище.

Git в отличие от стиля Subversion, делает это двумя логическими частями: В дальнейшем мы увидим пример отправки. Тем временем вы можете увидеть ваши зафиксированные записи используя log команду: В браузере это должно выглядеть примерно так, как на рисунке 2. XForms с проверкой и CSS. Кликните, чтобы увидеть увеличенное изображение Чтобы отправить форму, пользователь должен заполнить нужные поля.

Часть 4. Создание форм для врача и для поиска карточек пациентов

Когда значение введено, цвет поля автоматически изменяется, а фокус перемещается в следующее поле формы. Подумайте, как все это пришлось бы писать на JavaScript. XForms предоставляет много возможностей для проверки.

XML-схему использовать не обязательно, но это самый простой способ, особенно если данные легко описать при помощи схемы. Если проверка выполняется на стороне клиента, на стороне сервера можно сосредоточиться на обработке переданных данных.

Передача формы Вы, должно быть, заметили, что URL для передачи формы уже определен. Это можно легко настроить с применением сценария генерации Ruby, как в листинге 5. Неиспользуемые файлы можно удалить.

  • Ruby on Rails/Введение
  • Знакомство с фреймворками. Часть 2. Ruby, Java и JScript
  • Часть 2. Создание формы ввода данных для пациентов

Теперь обратите внимание на модель и контроллер и посмотрите, как модифицировать их, чтобы сохранить XML из XForms. Модель и контроллер Rails Скаффолдинг Rails используется для ускорения разработки приложения.

Во многих приложениях Rails скаффолдинг можно использовать для управления взаимодействием с базой данных без внесения каких-либо изменений в контроллер.

знакомство с ruby on rails часть 2

Это возможно благодаря использованию кода объектно-реляционного отображения в классе ActiveRecord Rails, который является базовым классом для всех моделей включая класс patient.

ActiveRecord не предназначен для управления XML, поэтому сгенерированные классы нужно модифицировать.

XForms и Ruby on Rails в кабинете врача: Часть 2. Создание формы ввода данных для пациентов

Начнем с класса patient листинг 6. Base end Как видите, по умолчанию класс Patient просто расширяет ActiveRecord. ActiveRecord динамически создает аксессоры на базе имен столбцов таблицы базы данных, которую он отображает. Контроллер приложения использует это, чтобы легко передать их прямо в форму данных.

Этим можно воспользоваться для модификации класса patient листинг 7.

знакомство с ruby on rails часть 2

Мы хотим хранить информацию в виде строки, и ActiveRecord вставит ее в базу данных как строку. Но что будет передано в нашу модель? В листинге 8 показан контроллер по умолчанию. Поэтому мы слегка модифицируем этот метод, чтобы обрабатывать XML-документ, который передается написанной нами формой XForms.

Знакомство с фреймворками. Часть 2. Ruby, Java и JScript

В листинге 9 показан модифицированный метод create. Это стандартная библиотека в составе Ruby.

знакомство с ruby on rails часть 2

Достаточно повторить его и вернуть в XML, и Rails введет документ в базу данных. Теперь его можно испытать. Затем наведите браузер на XForms, как на рисунке 2. Заполните форму и нажмите на кнопку Submit Information передать информацию. Вы увидите экран, изображенный на рисунке 3. Список пациентов Кликните, чтобы увидеть увеличенное изображение Откуда взялся пользовательский интерфейс?

Это стандартный UI списка, предоставляемый скаффолдингом Rails. Заметьте, что в поле Info он отображает неформатированный текст XML.

знакомство с ruby on rails часть 2

Если прокрутить экран вправо, вы увидите элементы управления для просмотра, редактирования и удаления пациентов. Просмотр и удаление работают как. Но не работает редактирование, и ссылка New Patient новый пациент внизу экрана тоже не работает. Нужно модифицировать ссылки для XForms, так как именно он используется для ввода данных.

В этом вам поможет часть 3 настоящей серии статей. Заключение Мы рассмотрели применение XForms для создания формы ввода данных о пациентах. DB2 распознает XML, преобразованный в последовательную строку, и может сохранять его в естественном виде с использованием технологии pureXML. Rails может даже отобразить эти данные без какой-то специальной работы с вашей стороны.