我正在组合两个实例变量,但它显示两个相同的值,因为有时我的每个实例变量都有相同的记录。我如何只显示不同的?
@var1 = Image.tagged_with(params[:tags])
@var2 = Image.psql_search(params[:tags])
@Combined = @var1 + @var2@var1来自acts-as-taggable gem,@var2来自PostgreSQL全文。
发布于 2014-04-08 19:13:24
获取对象的唯一in,并将它们映射到一个新数组(例如,使用OpenStruct代替ActiveRecord对象):
@combined = [OpenStruct.new(:id => 1), OpenStruct.new(:id => 1), OpenStruct.new(:id => 2)]
#=> [#<OpenStruct id=1>, #<OpenStruct id=1>, #<OpenStruct id=2>]
@combined.map(&:id).uniq.map {|x| @combined.find {|y| y.id == x}}
#=> [#<OpenStruct id=1>, #<OpenStruct id=2>]此解决方案不处理原始数据库查询,只解决表示问题。
https://stackoverflow.com/questions/22944811
复制相似问题