В моей модели у меня есть несколько методов для заполнения атрибутов 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
запускаются только в том случае, если я удаляю аргумент :scope => :client_id
в проверке :number
.
Почему он пропускает обратные вызовы before_validation
из-за этого?
Работа в Rails 3.0.3
Спасибо!
Спасибо.