Skip to content

Instantly share code, notes, and snippets.

@psylone
Last active November 12, 2016 12:20
Show Gist options
  • Select an option

  • Save psylone/147199d41b495bfa866a3cb9ec560470 to your computer and use it in GitHub Desktop.

Select an option

Save psylone/147199d41b495bfa866a3cb9ec560470 to your computer and use it in GitHub Desktop.
Задания к занятию 13

Задания к занятию 13

  • Валидации данных
  • Представления в Rails приложении
  • Отображение шаблона по умолчанию
  • Собственные хэлперы в представлениях
  • Создание формы с помощью хэлпера form_for
  • Защита параметров полученных от клиента (permitted params)

1. Методы Rails API

Найдите в документации Rails по адресу http://api.rubyonrails.org методы для объектов разных классов. Поэкспериментируйте с ними в интерактивной оболочке irb

Для класса ActiveRecord::Base:

  • Метод, позволяющий прочитать значение поля из базы, даже если метод чтения в модели был переопределён

  • Метод для обновления в БД сразу нескольких атрибутов модели

  • Метод, возвращающий хэш атрибутов модели

  • Метод, позволяющий проинициализировать атрибуты модели после того как её объект был создан

Для класса ActionController::Base:

  • Метод, возвращающий объект запроса

  • Параметры метода render, позволяющие сформировать ответ:

    • С помощью произвольного представления

    • В формате JSON

2. URL который легко запомнить

В файле config/routes.rb определите маршрут /signup для отображения формы с регистрацией пользователя.

3. Ваше имя состоит из одних цифр?

Создайте валидацию для поля name, которая будет проверять следующие условия:

  • Значение состоит из букв (может включать пробел)

  • Значение состоит из 2-х слов каждое из которых начинается с заглавной буквы. Например: John Smith

4. Корневой путь

В файле config/routes.rb вызовите специальный метод (ищите его в API ActionDispatch), который будет показывать форму с регистрацией пользователя.

Контакты для связи

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment