2014-12-03 9 views
5

Ho un'app in cui mostro i post di un utente corrente (posts.current_user). Mi piacerebbe mostrare il maggior numero di post che sono stati commentati più di recente ordinando da comment.date. Non sembra voler fare che ... continuo a ricevere:PG :: UndefinedTable: ERRORE: manca la clausola FROM - Ordinare un record associato con "include" Rails

PG :: UndefinedTable: ERRORE: manca FROM clausola entry per la tabella "comment"

mio controller

def_index 
@posts = current_user.posts.includes(:comment).order("comment.date ASC").includes(:image) 
end 

Ho provato join e include un I non riesco a rompere questo. Grazie.

risposta

13

Prova:

@posts = current_user.posts.joins(:comment).order("comments.date ASC").includes(:image) 

Spiegazione:

  • avete bisogno di un join
  • nell'ordine è necessario fare riferimento il nome del tavolo, non il nome dell'associazione
+0

ottengo questo : PG :: UndefinedTable: ERRORE: manca la clausola FROM per la voce "comment" LINEA 1: ... id "WHERE" posts "." Us er_id "= $ 1 ORDINE BY comment.d ... – NothingToSeeHere

+0

non hai provato con il mio pezzo di codice – apneadiving

+2

ah ... aspetta ... ho perso il 's' nei commenti! Era così. Grazie! – NothingToSeeHere