2013-07-17 11 views
5

Voglio scrivere una query per i seguenti utilizzando il metodo in cuiCome scrivere query annidate in ruby ​​on rails?

SELECT * FROM videos 
WHERE 'privacy' = 'public' OR 
     (privacy = 'private' AND 
     id IN (SELECT vid 
       FROM vid_ads 
       WHERE 'aid'=#{current_id})) 

Ho provato ad utilizzare seguente query, ma si è conclusa con un errore di sintassi

Video.where("privacy = 'public' OR 
      (privacy = 'private' AND id = ?)", 
      VidAd.where(:aid => current_id).select("vid")) 

Aiutateci

risposta

2

speriamo che questo shud lavoro!

Video.where("category = #{@static_cat} AND 
     privacy = 'public' OR 
     (privacy = 'private' AND 
     id IN (?))", 
     VidAd.where(:aid => current_id).select("vid"))