如何在Ruby on Rails中创建的确切时间进行排序

时间:2017-01-25 21:24:03

标签: ruby-on-rails ruby

我有一个模型,课程,has_many tees。 tees是从源自api的散列中单独创建的,例如

  course_h[:tees].each do |tee_h|
    course.tees.create!(tee_h)
  end

稍后我检索另一个哈希,并希望将新哈希与保存的T恤进行比较。我希望与原始哈希具有相同的顺序,并假设我可以使用course.tees.order(created_at: :asc)执行此操作。这适用于测试环境,但在开发环境中,顺序不一样。为什么会这样,有没有办法解决它?

1 个答案:

答案 0 :(得分:0)

为此目的使用对象id很诱人,但正如注释中所述,不能依赖对象id或created_at字段的顺序。添加排序字段更安全,例如:num。那么代码就是

course_h [:tees] .each_with_index do | tee_h,i |   Tee.create!(tee_h.merge(num:i) 结束 然后使用排序course.tees.order(num: asc)