我有一个模型,课程,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)
执行此操作。这适用于测试环境,但在开发环境中,顺序不一样。为什么会这样,有没有办法解决它?
答案 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)