Ruby on rails 在RubyonRails循环中添加到类值

Ruby on rails 在RubyonRails循环中添加到类值,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有这样的代码: def accum_search if params[:akbcap].present? akbcap_array = [12,18,19,20,25,30,35,36,38,40,41,42,44,45,46,47,50,52,53,54,55,56,58,60,61,62,63,64,65,66,68,69,70,71,72,74,75,77,80,85,88,90,91,92,95,98,100,102,110,115,120,125,130,1

我有这样的代码:

  def accum_search

    if params[:akbcap].present?
      akbcap_array = [12,18,19,20,25,30,35,36,38,40,41,42,44,45,46,47,50,52,53,54,55,56,58,60,61,62,63,64,65,66,68,69,70,71,72,74,75,77,80,85,88,90,91,92,95,98,100,102,110,115,120,125,130,135,140,170,180,185,190,192,200,210,220,225]
      min, max = params[:akbcap].split('-').map {|s| s.to_i }
      logger.warn("!@!!!!!!!!!!!! AAA !!!!!!!!!!")
      logger.warn(min)
      logger.warn(max)
      caprange = min...max
      sa = akbcap_array.select {|n| caprange.include? n }
      #@cross = OtherProductsCrossList.find(:all, :conditions => {:cross_value => 1})
      cap = "*"+params[:akbcap]+"*"
      sa.each do |s|
        logger.warn(s)
        @accums = Accumulator.by_capacity(s).by_size(params[:akbsize]).by_brand(params[:akbbrand])
      end
    else      
      @accums = Accumulator.by_capacity(50).by_size(params[:akbsize]).by_brand(params[:akbbrand])
    end
  end
如你所见,我有这样一部分:

sa.each do |s|
            logger.warn(s)
            @accums = Accumulator.by_capacity(s).by_size(params[:akbsize]).by_brand(params[:akbbrand])
          end

但我可以在搜索的@accums数据中添加每个迭代吗?现在它有了最后一个值(我可以通过数组来实现……但是如何通过类变量来实现呢?

是的,在循环之前启动它并使用
@accums = []
# ...
sa.each do |s|
  @accums << Accumulator.several_method_calls......
end
@accums.flatten!
result = sa.map{|s| Accumulator.several_method_calls...... }.flatten