将params转换为JSON并将其作为参数传递给ActiveJob

时间:2018-01-23 22:30:26

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

我将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

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

contact_ids = ["22","14","18"].to_json
=> "[\"22\",\"14\",\"18\"]"

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

JSON.parse(contact_ids)
=> [22, 14, 18]