0
我正在使用Rails'漂亮的accepts_nested_attributes_for
來創建invoices
及其items
。 Items
可以動態添加到帶有jQuery的invoice
。如何在使用Rails的accept_nested_attributes_for功能時維護子記錄上的訂單?
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
一窺我的數據庫和我items
表的created_at
列透露,滑軌(或SQLite?)似乎以隨機順序保存items
,而不是按照我(作爲用戶)將它們添加到invoice
的順序。
這是正常的行爲,如果是這樣,我怎麼能保持items
正確的順序,我加到我的invoice
?
感謝您的幫助......
OK,感謝您的幫助。但實際上這條線沒有任何區別。問題在於'items'以* random *順序**保存到數據庫中。 Rails有什麼方法檢測我將它們添加到'invoice'的順序? – Tintin81
我的解決方案建議如何檢索子對象,因此如果要查詢發票子項以將其顯示給客戶端或進行處理,您將按選項散列指定的順序查看它們。只是爲了澄清,是否有另一個原因,爲什麼你需要讓他們以特定的方式在數據庫中排序? – Noz
我正在構建一個開發票申請表,並且'items'應該始終以它們添加的確切順序出現。關鍵時刻是「發票」第一次被保存的時刻。因爲這種保存完全混雜了剛剛添加到表單中的所有「項目」。從用戶的角度來看這是不可接受的。 – Tintin81