0

我将两个参数传递给函数:

function_a(hash1, array1)

如果我在函数内打印class.name每个参数(即hash1.class.name),它显示为:

Hash1:Hash & Array-1:Array

两个数据结构在通过前的成员是:

哈希 1:

{:cmd=>"-add set isteautoSet1 2013-04-02 23:00:00",
 :criteria=>"isteautoSet1 2013-04-02 23:00:00",
 :setname=>"isteautoSet1",
 :operation=>"add"}

阵列-1:

[{:setname=>"isteautoSet1",
  :numrules=>"0",
  :tests=>"0",
  :lastchanged=>"2013-03-30 06:35:40",
  :filtertype=>"summary",
  :expires=>"2013-04-02 23:00:00"},
 {:setname=>"set1",
  :filtertype=>["company"],
  :rulenum=>"1",
  :criteria=>"mydomain.com"},
 {:setname=>"set1",
  :filtertype=>["individual"],
  :rulenum=>"2",
  :criteria=>"yourdomain.com"}]

我的目标function_a是:

验证字段的array-1 值是否与value匹配。("setname" + " " + "expires")hash-1:criteria

当我进行比较时,我不断收到“无法将符号转换为整数(类型错误)”。看起来问题在于使用“每个”方法访问数组内容。

4

1 回答 1

1

如果我对您的理解正确,也许这适合您:

rules.each do |hash|
    if hash.has_key?(:setname)
        if hash[:setname].eql?(cmd_hash[:setname])
             puts "found value"
        end
    end
end

这不是最干净的方法,但它为开始提供了良好的基础。

祝你好运!:)

于 2013-03-30T07:36:16.903 回答