以下查询返回如下:
@cref = Creference.all
@cref = @cref.group_by{|cc| cc["name"]}
result: Object {US: Array[1], UK: Array[1]}
这些查询将结果返回为:
@countries = Product.joins(:user).distinct.where("state is not null and country <> ''").where(:users => {:merchant_status => 1}).pluck(:country)
@countries.map! {|country| country.split.map(&:capitalize).join(' ')}
@countries = @countries.uniq
result: ["US", "UK"]
我正在使用gon
将结果传递到国家/地区下拉列表:
gon.search_location_list = @countries + @cref
如何使第一个结果格式与第二个匹配?感谢!!!
答案 0 :(得分:0)
在前两行之后,添加以下行:
@cref = @cref.values
答案 1 :(得分:0)
如何使第一个结果格式与第二个结果格式相匹配?
在您的第一个示例中,您使用group_by
返回哈希。在第二个示例中,您使用map
返回一个数组。两个地方使用相同的东西来获得类似的格式。
@cref = @cref.map{|cc| cc["name"]}
# ["US", "UK"]
答案 2 :(得分:0)
简而言之,您的问题是您希望使用哈希键连接数组值。因此,最简单的解决方案是
@cref = @cref.group_by{|cc| cc["name"]}.keys
这将返回数组格式的键,而不是连接。但这会产生相同的值,但你可以调用uniq()。