У меня есть два следующих теста для приложения Rails, над которым я работаю.
Этот сбой:
test "should save comment without parent comment" do
comment = Comment.new(:text => "hello world")
comment.user = users(:charlie)
comment.story = stories(:one)
assert comment.save
end
И этот проходит:
test "should save comment without parent comment" do
comment = Comment.new(:text => "hello world")
comment.user = users(:charlie)
comment.story = stories(:one)
comment.save
assert comment.save
end
Когда я изменяю строку подтверждения в первом (неудачном) тесте на это:
assert comment.save, Proc.new { "#{comment.errors.messages.inspect} -- valid? #{comment.valid?} -- save? #{comment.save}" }
Распечатывает это как сообщение об ошибке:
{} -- valid? true -- save? true
Я в полном недоумении, почему моей модели Comment требуется два вызова save
. Он отлично работает в моем контроллере с одним вызовом save
.
У меня есть after_create
обратный вызов, но я не думаю, что это должно влиять на что-либо (как я уже сказал, все это прекрасно работает с моего контроллера):
after_create :create_upvote_from_user
def create_upvote_from_user
Vote.create! :user => user, :vote => 1, "#{self.class.name.underscore}_id" => id
end