2013-08-27 18 views
5

Rails 3'te db'ye vurmak isteseydim bir sorgunun sonunda. Bu, yazmalarda önbelleği tazeleme gibi şeyler yapıyorum (bu nedenle her zaman önbellek vurur) için kullanışlıdır.Raylar 4 eşdeğer Rails 3 'Model.all'

Artık Raylar 4'te, Model.all bir ActiveRecord::Relation nesnesini döndürür (yani db'ye basmaz). Bunu elde etmenin en iyi yolu gerçekte db'ye gitmek ve belirtilen kayıtları iade etmek?

@Bigxiang, Model.all.load, belli vuruşlar için bu yöntemi veritabanı ama yine denemek için onun yorumunda işaret: Raylar 4

+0

model.all.load dosyasını deneyin. – Bigxiang

+0

@Bigxiang: ["Dönüş değeri, kayıtların kendisidir, ilişkindir."] (Http://api.rubyonrails.org/classes/ActiveRecord/Relation.html#method- i-yük). –

+0

Oh, pardon, benim hatam. Bence "to_a" işe yarayacak. – Bigxiang

cevap

8

Model.all.to_a Amend Raylar 3.

içinde Modal.all aynı sonucu verecektir bir ActiveRecordRelation döndürür. Ve temel olarak "Rails 3" den Model.all ile benzer bir işlevsellik elde etmek için, ActiveRecordRelation numaralı telefondan to_a numaralı telefonu arayabilirsiniz.

+0

Evet, belgeyi dikkatsizce okudum, "to_a" iyi :) – Bigxiang

+0

Bu sorunu çözdüm, –

+0

mesajını gönderdiğiniz için teşekkürler. .all'. örneğin: Eğer 'Model.where (adı: "John") varsa, Rails 3.2'de varsa,' Model.where (name: "John") ile yerine değiştirebilirsiniz. : "John"). All.to_a' Rails 4 – Felix