Разъяснение синтаксиса в Ruby Rails - PullRequest
0 голосов
/ 07 сентября 2018
class Person < ApplicationRecord
  validates :name, uniqueness: { case_sensitive: false }
end

Когда модель имеет вышеуказанное определение, что именно происходит за кулисами?

Я предполагаю, что существует какой-то метод validates и передается параметр с именем символа. Что такое второй параметр? хеш со значением хеш?

1 Ответ

0 голосов
/ 07 сентября 2018

Первая проверка :name дает понять, что Персона недопустима без атрибута name .

Вторая проверка uniqueness

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

Третий { case_sensitive: false }

Существует также опция case_sensitive , которую можно использовать, чтобы определить, будет ли ограничение уникальности учитывать регистр или нет. Эта опция по умолчанию имеет значение true

Наконец, проверяет: имя, уникальность: {case_sensitive: false}

Это означает, что в атрибуте Имя модели лица должен присутствовать с уникальностью, без учета регистра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...