【发布时间】:2009-12-09 15:18:03
【问题描述】:
我有一个名为 Tickets 的模型,即使在 无效的。这阻止了我使用验证来帮助防止 重复的数据被保存到数据库。在脚本/控制台中
>> Ticket.last.valid?
=> False
>> Ticket.first.valid?
=> False
如果我尝试查看与此无效对象相关的错误
>> Ticket.last.errors.each{|attr,msg| puts "#{attr} - #{msg}\n" }
=> {}
那么有谁知道如何将无效对象保存到 数据库,我怎样才能找到使对象无效的原因?
Ticket.rb(模型)
class Ticket < ActiveRecord::Base
belongs_to :whymail
belongs_to :forms
attr_accessible :to_email, :to_email, :from_email, :subject, :body
validates_uniqueness_of :to_email, :scope => [:body, :from_email]
validates_presence_of :to_email
validates_presence_of :from_email
validates_presence_of :subject
validates_presence_of :body
def after_create
if self.valid?
whymail = Whymail.find(:first, :include => :user, :conditions => ['(email = ?)', self.to_email.upcase ] )
if !whymail.nil?
self.whymail_id = whymail.id
self.save
MyMailer.deliver_forward(whymail.user.email, self.from_email, self.to_email, self.subject, self.body)
end
end
end
end
这个问题的一部分得到了回答,第二部分没有。任何人都可以看到这个模型的问题,即使它是无效的,它也可能允许它保存??
【问题讨论】:
标签: ruby-on-rails database validation