在ruby中添加实例变量另一个变量

时间:2013-01-29 13:23:29

标签: ruby-on-rails ruby

我有这样的空类对象(哈希):

@art_concret

我需要添加另一个变量.... 我试着:

@art_concret = @articles #@articles.find_all{|item| item.ART_ARTICLE_NR.gsub(/[^0-9A-Za-z]/, '').include?(search.upcase) }
@art_concret = @articles_oem
@art_concret.uniq 

也像:

art = []
art << @articles #@articles.find_all{|item| item.ART_ARTICLE_NR.gsub(/[^0-9A-Za-z]/, '').include?(search.upcase) }
art << @articles_oem
@art_concret = art.uniq.flatten! #| @articles
@art_concret

如果我需要将另一个(但具有相同结构)对象推入@art_concret,这不起作用? 那怎么样?

UPD 例如:

@a = {:a => 1}
@b = {:a => 2}

该怎么做@c将有@a + @b = {{:a =&gt; 1},{:a =&gt; 2}} ...只是拆分它们

@c = @a + @b - 一次测试就可以了

1 个答案:

答案 0 :(得分:0)

你的意思是你需要合并两个哈希?如果是这种情况,那么只需使用merge方法:

@a = {:a => 1}
@b = {:b => 2}
@a.merge(@b)

=&GT; {:a =&gt; 1,:b =&gt; 2}

或者,如果你的哈希有类似的键,你需要对相应的值执行一些操作:

@a = {:a => 1}
@b = {:a => 2}
@a.merge(@b)­ { |key,v1,v­2| v1 + v2 }

=&GT; {:A =→3}