установить валидацию на ассоциацию mongoid - PullRequest
2 голосов
/ 04 апреля 2011

У меня есть две модели

class Person
  embeds_one :address
end

class Address
  embedded_in :person
  field :city
  validates :city, :presence => true
end

Теперь, когда я делаю

person.address = Address.new

, вызывается проверка адреса.Но мне не нужна проверка в моем случае, и я также не могу удалить :validates из Address (потому что она мне понадобится позже).Я хочу сделать что-то вроде (:validate => false).Если у кого-нибудь есть идея, дайте мне знать!Я использую mongoid-2.0.0.

Ответы [ 3 ]

1 голос
/ 19 декабря 2011

Я верю, что вы хотите:

address = person.build_address

или просто:

person.build_address

См. Раздел «Строительство и создание».

1 голос
/ 04 апреля 2011

Вы можете использовать

person.address = Address.create

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

person.address = Address.new :addres => "Valid address"

и проверка не завершится неудачей.

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

0 голосов
/ 28 апреля 2011

Как насчет создания настраиваемого валидатора адресов, и он должен проверить, является ли это новой записью. если это так, то он все еще действителен с пустым адресом электронной почты?

...