rails 3:数据库查询

时间:2011-07-29 22:52:06

标签: sql ruby-on-rails database ruby-on-rails-3

我有一个名字的艺术家模型:字符串和其他属性。但我在SAME名称下有多个Artist条目。

有没有办法拉出一系列艺术家对象而没有任何重复的名称?

我已经找到了仅使用name属性的方法,但没有任何地方可以获取整个艺术家对象。

这两者都只是名称属性:

@artists = Artist.select('DISTINCT name').all
@artists = Artist.all.collect{ |a| a.name }.uniq

3 个答案:

答案 0 :(得分:2)

Activerecord小组可以满足您的需求:Artist.group(:name).all

答案 1 :(得分:0)

我的rails 3不太好但它仍然有rails 2语法。

@artists = Artist.find(:all, :select => 'DISTINCT name')

然后我们就可以得到一些爱情。

答案 2 :(得分:0)

一种方法是获取不同行的ID并从中获取其余数据:

Artist.where('artists.id IN (SELECT MIN(a.id) FROM artists AS a GROUP BY a.name)').all