是否可以为某列提供唯一的named_scope
个返回记录?
e.g
named_scope :unique_styles, :order =>"title desc", :limit => 3
这会给我三种风格,但如果我想确定标题不同怎么办?在这种情况下,可能有三个具有相同样式的记录,我希望这个named_scope只给出标题的唯一值。
所以["style 1", "style 1", "style 1"]
是不可能的,它会强迫自己给["style 1", "some style 2", "maybe another 3"]
group
可能会这样做,而我现在正在使用它。如果有人有任何意见,无论那是伟大的。答案 0 :(得分:13)
您可能想要探索finder和named_scopes的:group选项:
named_scope :unique_styles, :order => "title desc", :limit => 3, :group => "title"
答案 1 :(得分:3)
对于Rails 3窥视,您可以采用菊花链式:
scope :unique_styles, order("title DESC")
.select("DISTINCT title")
.limit(3)
答案 2 :(得分:2)
如果您真正想要的只是标题,那么这就是为MySQL做的。 (我没有考虑其他引擎是否支持DISTINCT。)
named_scope :unique_styles, :select => 'DISTINCT title', :order => 'title desc', :limit => 3