2016-03-29 34 views
0

Etkin kayıt sorgusunu kullanma Aşağıdaki sql sorgusunu nasıl yaparım?Aktif kayıt sorgusu kullanarak bu ham sql sorgusu nasıl yapılır?

sql = "select * from events 
inner join places on events.place_id = places.id 
inner join users on events.user_id = users.id" 
where events.id = #{event_id} 

Ben

Event.joins(:user, :place).includes(:user, place).find(event_id) 

denedim Bu neredeyse ne Ancak istiyorum *. Seçme olaylarını yapar ve seçmek değildir.

Sonra Ancak bu bir ActiveRelation nesnesi döndüren ve ben bu işten benim sonuçlar elde etmek için nasıl emin değilim

Event.joins(:user, :place).select('*.*') 

çalıştı.

Ben de

Event.joins(:user, :place).find(event_id) 

denedim ve bu hata verir.

ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR: syntax error at or near "." 

Başka neler denemediğinizden emin değilsiniz. Yapmaya çalıştığım şey mümkün değil mi?

+1

Etkin bir ilişki nesnesi istediğinizdir. Sadece sorguyu yürütecek bir yöntem çağırın - örn. "All" veya "each" veya "to_a" (bir diziye dönüştürmek için) –

cevap

0
Event.joins(:user, :place).where("events.id = ?", event_id).select("events.*, users.*, places.*") 
+0

Sorun bu döner olayıdır. * Ve aynı değil raw sql sorgusu yeniden oluşturmaya çalışıyorum. Sorgunun, birleştirilmiş bir sorgudaki tüm alanları da bir tek sorguda döndürmesini istiyorum. – Riina

+0

Cevabımı değiştirdim – archana

+0

Teşekkürler, ancak anladığım kadarıyla, sonuç tablolarına katılan tablolara nasıl erişebilirim? Olayı geri döndürüyor gibi görünüyor, katılan sütunlardan hiçbirini göremiyorum. İşlenmemiş sql sorgusu, döndürülen her sonuç için birleştirilmiş tüm sütunları içeren karmaların bir listesini döndürür, eşdeğer verinin nerede olduğunu, etkin kayıt sorgusunda verdiğiniz sonuçta göremiyorum. – Riina