【问题标题】:Ruby - undefined method `map' for stringRuby - 字符串的未定义方法“map”
【发布时间】:2022-07-08 01:01:52
【问题描述】:

我无法将字符串数组转换为整数。我收到以下错误undefined method map for "[\"118\", \"119\"]":String

知道如何解决这个问题吗?

            def job_template_by_id
              job_template_id = var_search(@handle.object, 'job_template_id') ||
                                var_search(@handle.object, 'dialog_job_template_id')
                               
              job_template_id = job_template_id.map(&:to_i)

              @handle.vmdb(SCRIPT_CLASS).where(:id => job_template_id) if job_template_id
            end

错误:

[----] E, [2022-07-07T16:08:09.928258 #534:2afb827cdb68] ERROR -- automation: Q-task_id([r837_miq_provision_2172]) <AEMethod launch_ansible_job> The following error occurred during method evaluation:
[----] E, [2022-07-07T16:08:09.930286 #534:2afb827cdb68] ERROR -- automation: Q-task_id([r837_miq_provision_2172]) <AEMethod launch_ansible_job>   NoMethodError: undefined method `map' for "[\"118\", \"119\"]":String
[----] E, [2022-07-07T16:08:09.931630 #534:2afb827cdb68] ERROR -- automation: Q-task_id([r837_miq_provision_2172]) <AEMethod launch_ansible_job>   /ManageIQ_Custom/AutomationManagement/AnsibleTower/Operations/StateMachines/Job/launch_ansible_job:113:in `job_template_by_id'

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3


    【解决方案1】:

    嗯,这个错误表明它不是您期望的数组,它是一个字符串,可能是 JSON。所以你需要先解析它

    job_template_id = JSON.parse(job_template_id).map(&amp;:to_i)

    【讨论】:

      猜你喜欢
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      • 2014-06-11
      • 2014-06-01
      相关资源
      最近更新 更多