2014-02-14 3 views
0

Я пытаюсь сортировать список элементов в зависимости от значения поля на объединенной таблице. Вот что у меня до сих пор:Сортировка по объединенному значению таблицы с Rails

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

Это выглядит правильно для меня, но, когда он запущен он возвращает ошибку 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

отлично работает - спасибо! – samlester

+0

@krishna sahoo: Не следует ** включать ** be ** включает **? Можете ли вы посмотреть на это [link] (http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html), и когда я использую ** ссылки ** в (postgres db) методе, то я получаю неопределенный метод ' ссылки ActiveRecord :: Relation' для запроса 'asdsdfsdf' – zeal

+0

@krishna sahoo: Не следует ** включать ** be ** включает **? Можете ли вы посмотреть на это [link] (http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html), и когда я использую ** ссылки ** в (postgres db) методе, то я получаю неопределенный метод ' ссылки ActiveRecord :: Relation' для запроса '@messages = Message.includes (: sender) .where (« UPPER (body), такой как UPPER (?) или UPPER (body), как UPPER (?) или UPPER (sender.first_name) например, UPPER (?) ","% # {"sus"}% ","% # {"ang"}% ","% # {"bar"}% "). reference (: people)'. – zeal

1

Ваше имя таблицы событий, так что вы просто должны добавить с в случае

FeaturedEvent.joins(:event).order('events.start_datetime').limit(5) 
Смежные вопросы