Рубин на релси - често срещани грешки за начинаещи

Преди старта. Бих искал също да спомена, че едни и същи задачи трябва да се решават по един и същ начин. Вие лично или като екип трябва да имате ръководство за стил, което да обхваща всички ключови точки на кодовия дизайн и организация. Същият код ще улесни взаимодействието на екипа и ще направи по-малко грешки.

Първата част е посветена на моделите. Този слой съдържа цялата бизнес логика, заедно с най-голям брой грешки при нейното изпълнение.

Така че начинаещи:

Не използвайте автоматично генерирани методи.

Обикновено Rails и много скъпоценни камъни добавят много полезни помощни методи към обектите, с които работят. Трябва да знаете тези функции и да ги използвате. Например за булеви полета rails автоматично добавя предикати. Това са методи, които завършват с въпросителен знак. Използването им се счита за добра форма.

Не разбирам откъде идва свръхрастежа N +1

Разбирането как ORM работи с база данни е много важно, но не винаги е налице, дори на основно ниво. Следователно методите include, preload, eager_load почти никога не се използват. Не е използван скъпоценен камък.
В първия случай ще бъде изпълнена N + 1 заявка към базата данни, където - N е броят на подадената домашна работа. Това може да бъде 10, 20 или дори 100 заявки. Вторият код ще има общо 2 заявки!

Не използвайте обхват

Обхватът ви позволява да скриете изпълнението на базата данни и да уникализирате кода си. Освен това използването им прави кода много по-четлив. Защото те показват намерението на разработчика, а не структурата на основата.

Не знам разликата между размера и броя в ActiveRecord: Relation

Разликата е, че count винаги ще направи заявка, размерът ще провери дали необходимата стойност е отчетена във всяко поле. Още - гледайте скрийнскаст за CounterCache

Обикновени мюсли за начинаещи

Винаги пиша count просто защото съм свикнал с тази дума от други езици и ми харесва повече.