Rails .all返回一个与对象的关系,但.count和.all.to_a不返回任何内容

时间:2015-12-09 13:01:25

标签: ruby-on-rails activerecord factory-bot byebug

我目前正处理一个非常奇怪的问题。我有一个ExportFile模型。在测试中的byebug控制台内,如果我拨打.all,我会看到:

>>> ExportFile.all
#<ActiveRecord::Relation [#<ExportFile id: 189, sequence_number: 1, filename: "DB_EXPORT_20151106173840.zip", status: 3, content: 2, created_at: "2015-12-09 12:54:56", updated_at: "2015-12-09 12:54:56", first_transfer_date: nil, failed_transfer_count: 0, successful_transfer_date: "2015-12-01 12:54:56">, #<ExportFile id: 190, sequence_number: 2, filename: "DB_EXPORT_20151106173840.zip", status: 3, content: 2, created_at: "2015-12-09 12:54:56", updated_at: "2015-12-09 12:54:56", first_transfer_date: nil, failed_transfer_count: 0, successful_transfer_date: "2015-12-01 12:54:56">, #<ExportFile id: 191, sequence_number: 3, filename: "DB_EXPORT_20151106173840.zip", status: 3, content: 2, created_at: "2015-12-09 12:54:56", updated_at: "2015-12-09 12:54:56", first_transfer_date: nil, failed_transfer_count: 0, successful_transfer_date: "2015-12-01 12:54:56">, #<ExportFile id: 192, sequence_number: 4, filename: "DB_EXPORT_20151106173840.zip", status: 3, content: 2, created_at: "2015-12-09 12:54:56", updated_at: "2015-12-09 12:54:56", first_transfer_date: nil, failed_transfer_count: 0, successful_transfer_date: "2015-12-01 12:54:56">, #<ExportFile id: 193, sequence_number: 5, filename: "DB_EXPORT_20151106173840.zip", status: 3, content: 2, created_at: "2015-12-09 12:54:56", updated_at: "2015-12-09 12:54:56", first_transfer_date: nil, failed_transfer_count: 0, successful_transfer_date: "2015-12-01 12:54:56">]>

但如果我尝试.count.all.to_a,我什么也得不到:

>>> ExportFile.count
0
>>> ExportFile.all.to_a
[]

为什么会发生这种情况,我做错了什么?在运行上述代码段之前,我使用FactoryGirl.create_list(:export_file, 5),如果它确实有所作为。

2 个答案:

答案 0 :(得分:1)

我假设您在开发模式下处于控制台,但FactoryGirl在测试数据库中创建记录,因此您无权访问它们。

我认为,如果您使用ExportData记录为开发数据库设定种子,那么他们就会为您服务。

答案 1 :(得分:1)

升级byebug似乎解决了这个问题。我已经从8.1.0升级到8.2.1。很奇怪......