Какая польза от метода исключения и включения в рельсах? - PullRequest
0 голосов
/ 24 июня 2018

я прочитал документацию по рельсам exclusion и inclusion метод это описание

2.4 исключение

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

но не понимаю, используйте его

2,6 включения

то же самое определение

1 Ответ

0 голосов
/ 24 июня 2018

С помощью exclusion вы можете проверить значение для указанного атрибута, которое не принимает значение ни одного из них для параметра in.

Возьмите пример модели автомобиля, где у вас есть цена, характеристики, марка и т. Д. (Не нормированы). Вы можете запретить создание автомобиля с маркой Toyota, добавить эту конкретную марку и в момент сохранения записи из-за проверки возникнет ошибка, и транзакция будет подвергнута откату.

class Car < ApplicationRecord
  validates :brand, exclusion: { in: %w[hyundai toyota peugeot] }
end

car = Car.new(price: 11111, brand: 'hyundai')
car.valid? # false
car.errors.messages
# => {:brand=>["is reserved"]}
car.save
#   (0.1ms)  begin transaction
#   (0.1ms)  rollback transaction
# => false

Вы можете создать любой автомобиль, если марка не является "hyundai", "toyota" или "peugeot".

Обратите внимание, что проверка чувствительна к регистру. Разве это не тот же "Hyundai" или "Hyundai" (или любой другой).

ActiveRecordValidations#inclusion является противоположностью исключения, он проверяет, что значение может быть любым из значений в опции in.

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