SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • Miles Fisher

    Miles Fisher

    8 NİSAN 2009
  • The Exploiteers

    The Exploite

    4 Ocak 2011