Seri hale getirilmiş özniteliği (dizisi) olan bir modelim var. Modeli doğrulamak istiyorum, sadece dizinin her üyesi önceden belirlenmiş seçenekler dahilinde bulunuyorsa.Seri hale getirilmiş bir öznitelikte eklenme doğrulaması nasıl gerçekleştirilir?
Örnek: Bir "mod" özniteliğine sahip bir Kişi modelim var. Kullanıcıların birden fazla ruh hali olabilir, ancak her bir ruh hali 'mutlu', 'üzgün', 'yorgun' veya 'öfkeli' olmalıdır.
class Person < ActiveRecord::Base
MOODS = %w[happy sad tired angry]
# validates :inclusion => { :in => MOODS }
attr_accessible :mood
serialize :mood
end
yorumladı doğrulama çalışmaz:
modeli böyle bir şey olurdu. Çalıştırmak için herhangi bir yolu var mı yoksa özel bir doğrulama mı gerekiyor?
(. Not: Ben ayrı Mood model oluşturmak istemiyorum)
kontrol edin bu dokümantasyon, http://guides.rubyonrails.org/active_record_validations_callbacks.html#inclusion: Sadece için, bir blok sözdiziminde beklediğinizden yollarını bu doğrulamaları koyabilirsiniz. Bunun için özel geçerlilikler oluşturmanız gerekmez. Serileştirilmiş öznitelikler üzerinde – Chamnap
, aksi takdirde, seri hale getirilmiş değer eklenmesi için kontrol edilir, yani mood = [yorgun, kızgın] MOODS.include? (Mood) yanlış olduğundan başarısız olur. –
Ah, serileştirme yöntemini görmedim. Cevabın doğru olmalı o zaman. – Chamnap