Как пройти в соответствии с условиями в валидах

StackOverflow https://stackoverflow.com//questions/25047062

  •  21-12-2019
  •  | 
  •  

Вопрос

Как я могу написать проверку для штрих-кода, чтобы быть уникальным для всех пользователей, где is_deleted является ложной и такой же цепью?

validates :barcode, uniqueness: { conditions: -> { |record| where(is_deleted: false, chain_id: record.chain_id) } }, if: proc { |u| u.barcode.present? }
.

Что здесь не так?

спасибо.

UPD.Там могут быть два пользователей с тем же штрих-кодом с той же Chain_ID, если один из них или оба имеют :is_deleted => true

Это было полезно?

Решение

validates :barcode, uniqueness: { scope: :chain_id, conditions: ->{ where(is_deleted: false) } }, if: proc { |u| u.barcode.present? && u.active? }
.

Я придумал решение. Спасибо и извините, поздно здесь и голова не работает должным образом :)

Другие советы

Валидация Rails Rails У if и параметров GeneracodicodCode, которые позволяют добавлять условия, вы использовали его для правильной проверки наличия штрихкода, но вы можете продлить его для unless. Что касается цепочка, я понимаю, что вы заинтересованы в наличии.

в вашем случае, что будет

validates :barcode, uniqueness: { scope: [:chain_id] }, if: proc { |u| u.barcode.present? && w.is_deleted.false? }
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top