2017-01-25 3 views
0

私はモデルCourse、has_many teesを持っています。ティーは、例えばRuby on Railsでの作成の正確な時刻での注文方法

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

その後、私は別のハッシュを取得し、保存されたTシャツと新しいハッシュを比較したいAPIから導出されたハッシュからindividuall作成されます。私は元のハッシュと同じ順序を持つことを望み、course.tees.order(created_at: :asc)でこれを行うことができると仮定しました。これはテスト環境で動作しますが、開発環境では順序は同じではありません。これはなぜですか、それを修正する方法はありますか?

+0

を使用するには – Iceman

+1

!。データベースの多くは挿入時間の精度が1秒なので、レコードの束をすばやく挿入すると挿入時間が同じになる可能性があります。 – tadman

答えて

0

この目的のためにオブジェクトIDを使用するのは魅力的ですが、コメントに記載されているように、オブジェクトIDまたはcreated_atフィールドの順序は信頼できません。順序フィールドを追加する方が安全です。たとえば:num。コードは次に

course_h [:tees] .each_with_index do | tee_h、i | Tee.create(tee_h.merge(NUM:その後、ⅰ) 終了 と私はあなたが好きな、 `sort`または` position`、このために余分なフィールドを追加する注文course.tees.order(num: asc)

+0

またはIDを使用してください... –

+0

もちろん、私はそれに応じて編集します。 – Obromios

関連する問題