выберите отличные возвращает ноль (globalize3) - PullRequest
1 голос
/ 19 июля 2011

Post.find(:all, :select => "DISTINCT author")
возвращает
[#<Post author: nil>, #<Post author: nil>, #<Post author: nil>, #<Post author: nil>, #<Post author: nil>].

Однако запрос SQL SELECT DISTINCT author FROM posts; работает должным образом.

Я использую globalize3.Post.select('DISTINCT author').with_translations('en') возвращает все записи.
Вот его журнал:

Post Load (0.5ms)  SELECT "posts"."id" AS t0_r0, "posts"."description" AS t0_r1, "posts"."position" AS t0_r2, "posts"."created_at" AS t0_r3, "posts"."updated_at" AS t0_r4, "posts"."date" 
AS t0_r5, "post_translations"."id" AS t1_r0, "post_translations"."post_id" AS t1_r1, "post_translations"."locale" AS t1_r2, "post_translations"."author" 
AS t1_r3, "post_translations"."description" AS t1_r4, "post_translations"."created_at" AS t1_r5, "post_translations"."updated_at" 
AS t1_r6 FROM "posts" LEFT OUTER JOIN "post_translations" ON "post_translations"."post_id" = "posts"."id" WHERE "post_translations"."locale" = 'en' 
AND (post_translations.author IS NOT NULL)

Как выбрать только отдельные значения?

1 Ответ

0 голосов
/ 19 июля 2011

Может быть так просто:

Post.find(:all, :group => author)

Обновление:

Похоже, что postgres немного более совместим с MySQL, поэтому попробуйте это вместо:

Post.select("DISTINCT ON (author) *")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...