Ошибка чтения атрибутов Rails 2.3.8 - PullRequest
3 голосов
/ 10 августа 2011
  • Rails 2.3.8
  • Windows Server 2003
  • Сервер SQL Server 2005

Хм, эта ошибка совершенно не имеет никакого смысла.Я проверял это несколько раз.Вот пример консоли.

>> s = SaleItemArchive.find(118296)
=> #<SaleItemArchive id: 118296, sale_id: 60308, item_id: 19825, quantity: 40, p    rice: 0.75, created_at: "1998-08-10 00:00:00", quantity_shipped: 0>
>> s.created_at
=> nil
>> s.attributes["created_at"]
=> Mon Aug 10 00:00:00 UTC 1998
>>
>> s.class.match_attribute_method?("created_at")
=> nil
>> s.class.generated_methods.include?("created_at")
=> false
>>

Вот пример обычной.

>> s = SaleItemArchive.find(118297)
=> #<SaleItemArchive id: 118297, sale_id: 60309, item_id: 2931, quantity: 100, price: 0.07, created_at: "1998-08-10 00:00:00", quantity_shipped: 0>
>> s.created_at
=> Mon, 10 Aug 1998 00:00:00 PDT -07:00
>> s.attributes["created_at"]
=> Mon Aug 10 00:00:00 UTC 1998

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

Я попытался проверить, и по какой-то причине метод атрибута не создан.Я пытался дублировать эту проблему с новыми строками, редактировать другие строки и т. Д. Ничего.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 10 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...