after_create, own_to и validate_presence_of - PullRequest
       6

after_create, own_to и validate_presence_of

0 голосов
/ 21 января 2011

У меня есть следующие два класса, где класс A инициализирует B в after_create. К сожалению, это не работает, и создание B завершается неудачно из-за нарушения проверки наличия_для

class A < ActiveRecord::Base
  has_many :bs

  after_create :after_create_hook

  def after_create_hook
    B.create(:a => self)
  end
end

class B < ActiveRecord::Base
  belongs_to :a
  validates_presence_of :a
end

При создании A создается A, но не B.

1 Ответ

1 голос
/ 21 января 2011

Я только что нашел это: http://blog.teksol.info/2006/03/08/don-t-validate-belongs_to-or-else

Ошибка здесь в том, чтобы проверить экземпляр a.Поскольку это всего лишь внешний ключ, проверка должна проверить это:

validates_presence_of :a_id

И теперь все работает.

...