0

私はRailsの気の利いaccepts_nested_attributes_forた作成invoicesとそのitems. jQueryItemsを使用して動的に追加できます。invoice

class Invoice < ActiveRecord::Base
  attr_accessible :project_id, :number, :date, :recipient, :items_attributes
  accepts_nested_attributes_for :items
end

これはうまくいきます。Rails が を保存する順序を除きitemsます。

たとえばinvoice、これらの 5 で を作成するとitems...

A
B
C
D
E

...すべて正常に動作します。しかしCreate、請求書とアイテムをデータベースに保存するためにヒットすると、注文は完全にランダム化されます。たとえば、次のようになります。

D
A
C
E
B

created_at私のデータベースと私のテーブルの列を覗いてみると、itemsRails (または SQLite?)itemsはランダムな順序で を保存しているように見え、私が (ユーザーとして) それらを に追加した順序ではないことがわかりましたinvoice

itemsこれは正常な動作ですか? もしそうなら、どうすればに追加する で適切な順序を維持できinvoiceますか?

助けてくれてありがとう...

4

1 に答える 1

0

アソシエーションに :order オプションを渡すことで、アソシエーション オブジェクトを受け取る順序を指定できます。例えば:

has_many :items, :order => "created_at DESC"

ソース:関連付けオプション

于 2012-10-29T16:14:04.343 に答える