Я подписан на http://railscasts.com/episodes/102-auto-complete-association
Все вроде нормально. Я пытаюсь создать счет, а также клиент на лету. Это работает. Все круто.
клиент принадлежит к учетной записи
счет принадлежит к учетной записи
счет принадлежит клиенту
Buuut, обе модели (Клиент и Счет-фактура) имеют обязательный атрибут: account_id.
Когда я пытаюсь создать нового клиента на лету, я получаю сообщение об ошибке :client_id: - can't be blank
Причина, по которой я получаю эту ошибку, заключается в том, что Клиент не может быть создан, потому что он требует account_id в модели Клиента. Если я удаляю эту строку validates :account_id, :presence => true
в модели клиента, счет добавляется, но у клиента нет account_id.
У меня есть это в clients_controller.rb в действии create для установки значения по умолчанию @client.account_id = current_user.account_id
invoice.rb
validates :account_id, :presence => true
validates :client_id, :presence => true
def client_name
client.name if client
end
def client_name=(name)
self.client = Client.find_or_create_by_name(name) unless name.blank?
end