L'autore della domanda deve leggere informazioni su Rails di base e sull'utilizzo di ActiveRecord prima di passare a SQL. Hai bisogno di capire come Activerecord modella i tuoi dati e come usarli. Per prima cosa capisci cosa vuoi fare in un linguaggio comune e poi vedi come puoi usare ciò che esiste per farlo.
Rails non conosce la struttura della tua tabella @temp. Ha solo un set di risultati e da quello che ho capito, AREL non crea logica dal set di risultati. Si basa su schemi che estrae per modelli di record attivi.
Non puoi creare una vista da questi dati, quindi la tua unica opzione è usare le opzioni di join standard con classi activerecord o fare sql personalizzato.
In Rails 3, l'algebra relazionale ActiveRecord è molto avanzata e ha reso le query molto semplici.
Comment.order("#{Comment.table_name}.created_at desc').limit(5).joins(:posts).order("#{Post.table_name} created_at desc")