Файл из 5й лекции mail.ru про блоки Объект Proc — это инкапсуляция блока кода, который может храниться в локальной переменной, передаваться методу или другому Proc и может быть вызван. Proc — это важная концепция Ruby и ядро его функций функционального программирования. Объекты Proc являются замыканиями, то есть они запоминают и могут использовать весь контекст, в […]
Рубрика: Вопросы
Blocks Блоки — это небольшие анонимные функции, которые можно передавать в методы. Блоки заключаются в оператор do / end или в фигурные скобки {}, и у них может быть несколько аргументов. Имена аргументов определяются между двумя вертикальными | | знаками. Блок можно написать в одну строку Или в несколько строк Блоки полезны, так как записанную […]
Составной индекс базы данных или индекс с несколькими столбцами — это индекс, основанный на нескольких столбцах. Вы должны использовать составной индекс, когда используете запросы, которые от него выигрывают. Составной индекс, который выглядит следующим образом: index (column_A, column_B, column_C), будет полезен запросу, который использует эти поля для объединения, фильтрации и иногда выбора. Это также принесет пользу […]
Модуль — это набор методов и констант. Методы в модуле могут быть методами экземпляра или методами модуля. Когда модуль включен, методы экземпляра появляются как методы в классе, а методы модуля — нет. И наоборот, методы модуля могут быть вызваны без создания инкапсулирующего объекта, а методы экземпляра — нет. Include — Вызывает #append_features для каждого параметра […]
Локальные переменные Переменные экземпляра Переменные класса Глобальные переменные Каждая переменная в Ruby объявляется с помощью специального символа в начале имени переменной, который упоминается в следующей таблице: СИМВОЛ ТИП ПЕРЕМЕННОЙ [a-z] or _ Local Variable @ Instance Variable @@ Class Variable $ Global Variable
Nil — Объект, который представляет «пусто» или «по умолчанию» ведет себя как «false» Nil — существует только в единственном числе и имеет .object_id #4 Мы спрашиваем о значении, но если значение недоступно (недоступен продукт, индекс за границами допустимых значений, ключ хеша не существует и т.д) Что бы подстраховаться при привызове значения из неизвестной длины массива […]
Numbers 1 Strings «text» Hash {«a«=>1, «b«=>«hello«} Array [«hi», 1, 10] Boolean true, false Symbol :var :Symbol Выглядит как переменная, имеет « : «. Больше похожа на строку чем на переменную. Отличие от строки — строка работает с данными, символы с идентификаторами Преимущества символов 1. Символы неизменяемые. Это позволяет быстрее получать данные. Если использовать строку […]
Используется для удобства поискаНапример мы сделали ошибку в написании имени «Павл», благодаря «Fuzzy Search» мы найдем правильное значение из БД «Павел»
Патерн проектирования, который позволяет перенести объектно-ориентированное наследование на таблицу реляционной БД. В таблице БД должно присутствовать поле идентификации названия класса в иерархии. В ROR это type. В однотабличном наследовании (STI) многие подклассы наследуются от одного суперкласса со всеми данными в одной таблице в базе данных. У суперкласса есть столбец «тип», чтобы определить, к какому подклассу […]
Транзакции БД
Перевод БД из одного целостного состояния в другое. Операции должны быть выполнены или не выполнены вовсе (все или ничего) Пример Мы списали средства с одного кошелька, что бы перевести на другой, но во время перевода выключился свет и операция выполнила только списание, но не пополнила второй. Транзакции предотвращают это. Работает с помощью ведения журнала Начало: […]