来自活动记录查询的结果不一致

时间:2015-12-28 23:34:38

标签: ruby-on-rails ruby sqlite activerecord

这是我的Person模型,它在方法中包含以下查询:

def get_uniq_person_ids
    uniq_person_ids = select('person_id').where(:state => '1').uniq
    uniq_person_ids
end

我的测试如下:

def test_uniqueness
    Person.delete_all
    assert_equal(0, Person.count)

    # ..... Adding 8 rows to the database with 2 unique person_id.....

    pids = Person.get_uniq_person_ids
    assert_equal(pids.size, 2)    
end

测试失败,并显示以下内容:

  

失败:     < 8是氢。预期但是     &LT 2 - ;

表中有8行,但只有2个唯一的person_id。

这就是我的尝试:

    在断言之前
  • puts pids。它只打印2个对象。测试失败并显示上述消息。
  • 在查询之前
  • binding.pry。尺寸为2,这是预期的,此次测试通过。
  

为什么结果如此不一致?这是时间问题吗?

注意:我使用sqlite作为我的数据库。

1 个答案:

答案 0 :(得分:0)

好的,所以我不确定实际问题是什么,但以下解决了它:

uniq_person_ids = uniq_person_ids.map(&:person_id)

我添加了行var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.fillStyle = "red"; ctx.fillRect(10, 10, 50, 50); function copy() { var imgData = ctx.getImageData(10, 10, 50, 50); ctx.putImageData(imgData, 10, 70); } 来创建person_ids数组。