Rails 2.3.8属性读取错误

时间:2011-08-09 21:02:07

标签: ruby-on-rails ruby sql-server-2005

  • 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 :(得分:0)

最有可能的情况是数据库中的行只是缺少行。该对象仍然响应created_at方法(因为它不会抛出错误),因此唯一的解释是该行的列为空。