Как выбрать отличные значения с arel/relational алгеброй

Я прилагаю все усилия для сгибания моего мозга вокруг ареала и алгебры отношений позади него, но как представить a SELECT DISTINCT последовательно уклоняется от моего понимания. Может любой объяснять как ареалу:

SELECT DISTINCT title FROM posts; 

Большое спасибо!

11
задан jemmons 28 June 2010 в 21:28
поделиться

2 ответа

Post.select ('DISTINCT title')

Обновление 1:

На момент публикации это было недоступно в Arel. В наши дни ActiveRecord :: QueryMethods имеет метод uniq ( http://apidock.com/rails/ActiveRecord/QueryMethods/uniq ), поэтому вам нужно:

Post.select(:title).uniq

Обновление 2: Похоже, что Арел теперь поддерживает такое поведение. У @maerics есть правильный ответ. Я бы удалил это, если бы это не был принятый ответ.

1
ответ дан 3 December 2019 в 02:29
поделиться

Предыдущий ответ - это путь Rails, нет? Но не путь Arel.

Это работает для 1.x:

posts = Table(:posts)
posts.project(Arel::Distinct.new(posts[:title]))

Я предполагаю, что есть другой "более правильный" способ сделать это через API, но я еще не выяснил этого.

6
ответ дан 3 December 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: