rubynotes

База

  • Базовые типы данных в ruby: Fixnum, Bignum, Float, Array, String, Hash.
  • В руби всё объекты, например число 1 – это объект класса Fixnum (проверка 1.class).
  • Каждый объект имеет уникальный object_id, например 1.object_id.
  • Каждый класс имеет набор методов, например 1.to_f. Существуют методы классы и методы объекта.
  • Применяя * к строке, например “John” * 5 , вы на строке “John” используете метод *, с аргументом 5. Иначе говоря “John” * 5 == “John”.*(5)
  • Если вызвать у объекта несуществующий метод, то получим ошибку #, а вот у строки такой метод есть 40.to_s.reverse
  • Скобки при вызове метода необязательны.
  • Метод gsub проходит по всей строке и заменяет одну подстроку, на другую – ‘I\’m a senior developer’.gsub(‘senior’, ‘junior’).
  • Есть ряд методов которые вызываются без объекта, например puts, но объект просто опущен, так как используется корневой объект Kernel.
  • Методы с ! на конце меняют оргинальный объект, а методы с ? на конце – это так называемые предикаты, которые по соглашению возвращают булевое значение.
  • Хэши posts = {:title => ‘Заголовок’, ‘content’ => ‘Содержание статьи’ } эквивалент posts = {title: ‘Заголовок’, ‘content’ => ‘Содержание статьи’}. Краткая запись title: ‘Заголовок’, доступна только тогда когда ключом является символ , доступ к элементам хэша

Блоки

Блок в ruby могут быт написаны в одну строку при помощи {} так и в несколько строк do … end Простой пример:

Передача парметров парметров в блок

Использование и аргументов и блока

Классы

Объявление класса и создание объекта

Методы объекта класса

Конструктор

Переменные (свойства) объекта и локальные переменные

Просто так доступа к переменным объекта нет, необходимо установить геттеры и сеттеры

Синтаксический сахар для установки сеттеров и геттеров. По сути создание методов для этих переменных при помощи метапрограммирования.

Rails

Валидация и ошибки, указать в модели validates_presence_of :имя_колонки, и при сохранении объекта без этой колонки отдаст false, а хэше errors будет содержать текст ошибок. Например:

Существуют много типов валидации validates_%%_of: numeralicity, uniqueness, confirmation, acceptance, length, format.

Leave a Reply

Your email address will not be published. Required fields are marked *