8 HAZİRAN 2010, Salı
Nasıl doğrulama olmadan özniteliklerini güncellemek için
Onun doğrulaması ile bir modeli var, ve daha önce nesne doğrulamadan bir nitelik güncelleme olamaz öğrendim.
Ben zaten her doğrulama satır sonunda on => :create
sözdizimi eklemek için çalıştı, ama aynı sonuçları aldım.
Duyuru modelim aşağıdaki doğrulamaları var:
validates_presence_of :title
validates_presence_of :description
validates_presence_of :announcement_type_id
validate :validates_publication_date
validate :validates_start_date
validate :validates_start_end_dates
validate :validates_category
validate :validates_province
validates_length_of :title, :in => 6..255, :on => :save
validates_length_of :subtitle, :in => 0..255, :on => :save
validates_length_of :subtitle, :in => 0..255, :on => :save
validates_length_of :place, :in => 0..50, :on => :save
validates_numericality_of :vacants, :greater_than_or_equal_to => 0, :only_integer => true
validates_numericality_of :price, :greater_than_or_equal_to => 0, :only_integer => true
Benim komisyon görev aşağıdakileri yapar:
task :announcements_expiration => :environment do
announcements = Announcement.expired
announcements.each do |a|
#Gets the user that owns the announcement
user = User.find(a.user_id)
puts a.title '...'
a.state = 'deactivated'
if a.update_attributes(:state => a.state)
puts 'state changed to deactivated'
else
a.errors.each do |e|
puts e
end
end
end
Bu çıkışı bu model için tüm doğrulama istisna atar.
Model doğrulama olmadan bir öznitelik güncelleştirme isteyen var mı?
CEVAP
8 HAZİRAN 2010, Salı
KULLANIM update_attribute yerine update_attributes
Güncellemeleri tek bir öznitelik ve normal doğrulama prosedür geçmeden kaydeder.
if a.update_attribute('state', a.state)
:- Not 'update_attribute' kod sizin için çalışmak bence söz vermiş. bir seferde sadece tek bir öznitelik güncelleştirme
Bunu Paylaş:
Nasıl GitHub çatallı bir depoyu güncel...
Nasıl stil için bir <select> sad...
Nasıl baskı yeni satır veya boşluk olm...
Nasıl fiiller olmadan huzur URL oluştu...
Nasıl kaldırma olmadan İNSTALL_PARSE_F...