【问题标题】:Converting params to JSON and passing as argument to ActiveJob将参数转换为 JSON 并作为参数传递给 ActiveJob
【发布时间】:2018-01-23 22:30:25
【问题描述】:

我正在将一个 rails 4.2 应用升级到 Rails 5,但我无法再将 [:members][:contact_ids] 之类的参数传递给 ActiveJob。

我尝试过转换成json之类的

contact_ids = [:members][:contact_ids].to_json
CreateMemberJob.perform_later(organization, contact_ids)

它变成了

   "[22,14,18]" 

但是一旦通过活动作业,它就变成了

 "[\"\",\"22\",\"14\",\"18\"]" 

如何将其返回到 ID 数组。

当我尝试 .to_a 时,我得到了

NoMethodError: undefined method `to_a' for  ""[\"\",\"22\",\"14\",\"18\"]"":String

【问题讨论】:

    标签: ruby-on-rails json parameters ruby-on-rails-5 rails-activejob


    【解决方案1】:

    尝试以下方法:

    contact_ids = ["22","14","18"].to_json
    => "[\"22\",\"14\",\"18\"]"
    
    contact_ids.delete!('"')
    => "[22,14,18]"
    
    JSON.parse(contact_ids)
    => [22, 14, 18]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-31
      • 2021-04-13
      • 2021-03-22
      • 2011-11-19
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多