2012-07-30 14 views
6

Bazen, veri işleme için DB'deki birçok veriyi sorgulamam gerekir. Aktivite, ben veri diziler hakkında sadece endişeliyim geçen ay etkinlik oluşturacak tüm kullanıcıları,Rails'de model oluşturmadan veri nasıl sorgulanır?

bulmak istiyorum, ve yaratmak istemiyorum:

Örneğin

, bir masa var Bir çok aktivite modeli,

Yapabileceğim herhangi bir yol var mı? Bu kodu gibi

:

Activity.where('created_at > ?', Time.now - 1.month).get_data(:user_id, :created_at) 
=> [[1, 2012-02-01] .... ] 
+1

Ben senin ifadeler üzerine karıştı. "{You} Etkinlik modelleri oluşturmak istemiyorum" "Yalnızca veri dizileriyle ilgileniyorum"? Anladığımdan emin değilim. Neden bir sorgu yaparak modeller yaratıyorsun? – Trip

+0

DB'nizi raylara benzer koşullar ile sorgulamak istediğiniz, ancak tüm bu ray modellerini oluşturmak istemediğinizi mi söylüyorsunuz? – Bornfree

+0

@Bornfree Evet. Bence çok yaygın bir senaryo. – linjunhalida

cevap

6

bu yaklaşımı deneyin:

sql = "SELECT * from activities limit 10" 
result = ActiveRecord::Base.connection.execute(sql) 
result.to_a 

ben sql sorgusu hakkında emin değilim ama anladınız.

+0

Çalışıyor! Kodu şimdi güncelliyorum. – linjunhalida

0

Dene:

Activity.where(['activities.user_id = ? 
       AND activities.created_at BETWEEN ? 
       AND ?', users, 1.month.ago, Time.zone.now]) 

Bu belirli bir kullanıcı grubu için geçen ay içinde yaratılan faaliyetlerinin tüm dönecektir. Bu sorgudaki tek sorun, son derece büyük veri kümeleridir. Bu sorguyu çalıştırmadan önce, etkinlikleri db'deki tüm etkinlikleri aramayacak şekilde daraltmak için named_scope kullanmak isteyebilirsiniz.

İlgili konular