В средах разработки и производства все работает хорошо:
> script/console
Loading development environment (Rails 2.3.8)
ruby-1.8.7-p302 > Tape.find(:first, :conditions => "deleted_at is not null").deleted_at.nil?
=> false
ruby-1.8.7-p302 > Tape.find(:first, :conditions => "deleted_at is null").deleted_at.nil?
=> true
Так почему я получаю прямо противоположные результаты в тестовой среде?
> script/console test
Loading test environment (Rails 2.3.8)
ruby-1.8.7-p302 > Tape.find(:first, :conditions => "deleted_at is not null").deleted_at.nil?
=> true
Поиск deleted_at is null
никогда не возвращает никаких записей в тестовой среде, даже если у некоторых вызовов есть deleted_at = nil
, а у некоторых там есть отметка времени.
Вот частичное считывание таблицы mysql:
mysql> describe tapes;
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
...
| deleted_at | datetime | YES | | NULL | |
+-----------------+--------------+------+-----+---------+----------------+
Кто-нибудь знает, что происходит?Это ошибка?