【问题标题】:Split A Long String Ruby拆分长字符串 Ruby
【发布时间】:2015-08-09 06:43:21
【问题描述】:

我正在检索 Sidekiq 上的预定时事通讯。此类主题的详细信息,创建时间和计划时间,应该显示在前端作为给管理员的通知。我已经能够走得更远,如下所示。我如何进一步分解这个字符串以便只显示在前端创建和安排在前端的主题?

字符串:

"---\n- !ruby/class 'Subscriber'\n- :send_in_batch_now!\n- - !ruby/hash:NewsletterOption\n    welcome_message: ''\n    body_message: ''\n    sender_id: 1\n    sender_name: 8Share Malaysia\n    from_email: malaysia@8share.com\n    country_code: my\n    test: false\n    subject: testnewsletter1\n    campaign_ids:\n    - '3'\n    scheduled: true\n    scheduled_at: 2015-05-28 08:45:00.000000000 Z\n    errors: []\n    category: version2/d/my/2015/05/26/jkhkjh\n"

【问题讨论】:

  • Do YAML.load(string).. 你似乎有一个 YAML 文件..
  • 我正在尝试从 Sidekiq 中提取预定的时事通讯。我在运行 $ r= Sidekiq::ScheduledSet.new $jobs = r.map {|re| 后得到了这个字符串re.args[0]} 输出 : - ["---\n- !ruby/class 'Subscriber'\n- :send_in_batch_now!\n- - !ruby/hash:NewsletterOption\n welcome_message: ''\n body_message : ''\n sender_id: 1\n sender_name: 8Share Malaysia\n from_email: malaysia@8share.com\n country_code: my\n test: false\n subject: jkhkjh\n campaign_ids:\n - '3'\n预定:真\n预定时间:2015-05-28 08:45:00.000000000 Z\n错误:[]\n]
  • 我收到此错误:TypeError: no implicit conversion of Array into String
  • 你能说明你是如何安排这个任务的吗?看来您正试图通过 perform_async 传递模型,这不是最好的方法。而是传递模型 id 并从您的工作人员中的数据库加载模型。

标签: ruby-on-rails arrays ruby string sidekiq


【解决方案1】:

试试这个

require 'yaml'
result = YAML.load(string)
puts result

如果你想从文件中加载

require 'yaml'
result = YAML.load_file(file.yml)
puts result

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    相关资源
    最近更新 更多