【发布时间】:2011-06-26 16:04:13
【问题描述】:
在我的模型中,我有几种方法可以在验证 Invoice 之前填充其属性:
validates :account_id, :presence => true
validates :account_address, :presence => true
validates :number, :presence => true
validates :number, :uniqueness => true, :scope => :client_id
before_validation :generate_number, :associate_addresses, :on => :create
def generate_number
self.number = self.client.invoices.count + 1
end
def associate_addresses
self.account_address = self.account.addresses.first
end
在控制器中:
@invoice = @account.invoices.build(:client_id => @client.id)
if @invoice.save
#it saved
end
我的问题是 associate_addresses 和 generate_number 方法只有在我删除 :number 验证中的 :scope => :client_id 参数时才会触发。
为什么它会因此跳过before_validation 回调?
在 Rails 3.0.3 中工作
谢谢! 谢谢。
【问题讨论】:
标签: ruby-on-rails validation callback