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