Почему active_record нарушает поведение ловушки Ruby и как мне ее обойти? - PullRequest
0 голосов
/ 18 апреля 2009

В последние пару дней я пытался найти решение проблемы active_record, которая мучила меня. Посты на railsforum и stackoverflow оказались полностью сухими. Длина и уровень детализации в этих постах, возможно, отговорили комментаторов, поэтому я попробую еще раз - вкратце.

Под окнами поведение ловушек является нормальным в моих сценариях - до тех пор, пока я не "требую 'active_record'", после чего ловушки перестают работать должным образом. Они вообще не запускаются, и это оставляет мою базу данных в беспорядке.

Рассматриваемый сценарий взаимодействует с другими сценариями в других системах посредством активной записи. Когда пользователь нажимает control-c или сценарий завершается по какой-либо другой причине, очень важно, чтобы сценарий уведомил базу данных о его (сценарии) неминуемой гибели до его выхода. С застрявшей ловушкой я застрял.

Есть ли обходной путь? Если вы заинтересованы в тестовом коде, смотрите мои связанные посты. Проблема может быть воспроизведена всего за несколько строк.

Спасибо ...

1 Ответ

1 голос
/ 18 апреля 2009

Рассматривали ли вы обновление Ruby на платформе Windows? Я сделал несколько тестов с вашим кодом и получил следующие результаты:

  • Ruby 1.8.6-p36, Gem 1.3.2, ActiveRecord 2.2.2: FAILS
  • Ruby 1.8.7-p72, Gem 1.3.1, ActiveRecord 2.1.0: РАБОТАЕТ
  • Ruby 1.8.7-p72, Gem 1.3.2, ActiveRecord 2.2.2: РАБОТАЕТ
  • Ruby 1.9.1-p0, Gem 1.3.1, ActiveRecord 2.3.2: иногда работает
...