2014-02-14 83 views
0

我想根據連接表上的字段值對項目列表進行排序。下面是我到目前爲止有:通過與Rails連接的表值進行排序

FeaturedEvent.joins(:event).order('event.start_datetime').limit(5) 

這一權利在我看來,但當它的運行將返回有關那裏是一個缺少FROM語句Postgres的錯誤:

PG::UndefinedTable: ERROR: missing FROM-clause entry for table "event" LINE 1: ...ts"."id" = "featured_events"."event_id" ORDER BY event.star...^: SELECT "featured_events".* FROM "featured_events" INNER JOIN "events" ON "events"."id" = "featured_events"."event_id" ORDER BY event.start_datetime LIMIT 5 

我試過的建議this post有關將默認範圍內的排序,但它出現了相同的錯誤 - 我猜這是Postgres的事情。

我該如何解決這個問題?

謝謝!

回答

3

嘗試

FeaturedEvent.includes(:event).order('events.start_datetime').limit(5) 

在您的訂單表名應該是真實的數據庫表名。

正如我猜,表名必須是events

+0

完美的作品加s - 謝謝! – samlester

+0

@krishna sahoo:不應該**包括**是**包括**?你可以看看這個[鏈接](http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html),當我在(postgres數據庫)方法中使用**引用**,那麼我得到未定義的方法'引用ActiveRecord :: Relation'作爲查詢'asdsdfsdf' – zeal

+0

@krishna sahoo:不應該包含** be ** includes **?你可以看看這個[鏈接](http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html),當我在(postgres數據庫)方法中使用**引用**,那麼我得到未定義的方法' (?)或UPPER(sender.first_name)之類的UPPER(?)或UPPER(body)的UPPER(body) (「)」,「%#{」sus「}%」,「%#{」ang「}%」,「%#{」bar「}%」)。references(:people)'。 – zeal

1

你的表名的事件,所以你只需要在事件

FeaturedEvent.joins(:event).order('events.start_datetime').limit(5) 
相關問題