如何从表中的列获取唯一值?例如,我有这个Products表:
ID NAME CATEGORY
1 name1 1st_cat
2 name2 2nd_cat
3 name3 1st_cat
Run Code Online (Sandbox Code Playgroud)
在这里,我想只获得2个值 - 1st_cat和2nd_cat:
<%Products.each do |p|%>
<%=p.category%>
<%end%>
Run Code Online (Sandbox Code Playgroud) 文档:http: //guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields
清楚地说明:
query = Client.select(:name).distinct
# => Returns unique names
Run Code Online (Sandbox Code Playgroud)
但是,当我在我的控制器中尝试时,我收到以下错误:
undefined method `distinct' for #<ActiveRecord::Relation:0xb2f6f2cc>
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,我想要不同的名称,如['George','Brandon'],而不是客户的实际记录.有什么东西我错过了吗?
可能重复:
Rails:从列中选择唯一值
假设我在过去两年(2011年和2012年)创建了5000条记录.我如何遍历所有这些记录并返回仅有独特年份的数组[2011,2012]?
我正在创建一个报告,其中每年标记的行记录退出,列标记为月.然后td由每年每个月的总计填充.
我面临以下问题。正如我们所看到的,我的game对象有两个关联的:players
=> game.players.count
2
Run Code Online (Sandbox Code Playgroud)
但是,该pluck方法返回重复的值:
=> game.players.pluck :name
["Alice", "Alice", "Bob", "Bob"]
Run Code Online (Sandbox Code Playgroud)
两者Game和Player延伸ActiveRecord::Base. 我完全不知道这里到底发生了什么。
相关宝石:
rails 4.2.8
mysql2 0.3.21
Run Code Online (Sandbox Code Playgroud)
关于可能发生的事情有任何线索吗?提前致谢。