PostgreSQL的/導軌3 /紅寶石1.9.2/OSXPostgresql&Rails 3 - 數組中元素的Update_attribute重新排列數組..爲什麼?
class Deliverable < ActiveRecord::Base
has_many :models, :dependent => :destroy
def build_template
models << sect_letterhead << sect_ica << sect_project_description_exhibit
end
end
ruby-1.9.2-p180 :002 > d.models.first
=> #<Model id: 1, company_id: nil, deliverable_id: 1, model_id: nil, type: nil, kind: "cover_page", csv_file_name: nil, csv_content_type: nil, csv_file_size: nil, csv_updated_at: nil>
ruby-1.9.2-p180 :003 > d.models.first.update_attribute(:csv_file_name, "blah")
=> true
ruby-1.9.2-p180 :004 > d.models.first
=> #<Model id: 5, company_id: nil, deliverable_id: 1, model_id: nil, type: nil, kind: "opening_letter", csv_file_name: nil, csv_content_type: nil, csv_file_size: nil, csv_updated_at: nil>
每當update_attribute一個模型,該模型被推動到所述陣列的端部。除了分配自定義排序屬性以避免在調用update_attribute時更改數組順序之外,還有其他方法嗎?我可以很容易地做到這一點,但我對數據庫的行爲感興趣。
即使我從模型對象中刪除時間戳,行爲仍然存在。
如果沒有時間戳記來跟蹤剛剛更新的模型,會發生這種情況如何?或者,當我調用update_attribute時,模型實際上是從數組中退出並放回最後一個位置?
在model.rb中添加了「default_scope order('id')」修復了這個問題,但我仍然不明白爲什麼默認是在一個看似虛幻的目錄下updated_at – pendevere 2011-05-18 04:05:24
更新屬性後嘗試'd.models.first.save' – 2011-05-18 04:48:51