Я имею в project.rb:Rails: зависимый =>: уничтожить в тестировании
has_many :items, :dependent => :destroy
И в item.rb:
belongs_to :project
Мои проекты арматуре:
b1_s_first_project:
title: B1's first project
И мои товары арматура:
В моем модульном тесте устанавливаются локальные переменные item = items(:b1_s_first_project_s_first_item)
и project = projects(:b1_s_first_project)
. Когда я звоню project.destroy
, project.destroyed?
возвращает true, но item.destroyed?
возвращает ноль, как будто он не был уничтожен. Что мне не хватает? Заранее спасибо.
Очень хорошо. По существу правильно. 'item.reload' поднял исключение Object not found, поэтому я просто изменил это утверждение на' assert! Item.exists? (item) '. Забавно, однако, я думал, что цель ActiveRecord состояла в том, чтобы автоматически обновлять объекты, чтобы вам не приходилось постоянно искать их каждый раз. Кажется, что .destroyed? флаг будет одной из вещей, которые будут обновляться. –
@steven: вещь как только объект загружен, он как-то кэширован, а затем есть трансляция, чтобы объект знал, что он удален. ^^ Рад, что я мог помочь – marcgg