मुझे इसकी मान्यताओं के साथ एक मॉडल मिला है, और मुझे पता चला है कि मैं पहले ऑब्जेक्ट को मान्य किए बिना एक विशेषता को अपडेट नहीं कर सकता।
मैंने पहले से ही on => :create
प्रत्येक सत्यापन लाइन के अंत में सिंटैक्स जोड़ने की कोशिश की , लेकिन मुझे वही परिणाम मिले।
मेरे घोषणा मॉडल में निम्नलिखित मान्यताएँ हैं:
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
मेरा रेक कार्य निम्नलिखित है:
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
यह आउटपुट में उस मॉडल के सभी सत्यापन अपवादों को फेंकता है।
क्या कोई भी मॉडल को मान्य किए बिना किसी विशेषता को कैसे अपडेट कर सकता है?