Tôi đã có một mô hình với các xác nhận hợp lệ của nó và tôi phát hiện ra rằng tôi không thể cập nhật một thuộc tính mà không xác thực đối tượng trước đó.
Tôi đã cố gắng thêm on => :create
cú pháp vào cuối mỗi dòng xác nhận, nhưng tôi đã nhận được kết quả tương tự.
Mô hình thông báo của tôi có các xác nhận sau:
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
Nhiệm vụ cào của tôi làm như sau:
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
Điều này ném tất cả các ngoại lệ xác nhận cho mô hình đó, trong đầu ra.
Có ai làm thế nào để cập nhật một thuộc tính mà không xác nhận mô hình?