【问题标题】:Ruby writing hash key as file name and values as textRuby将哈希键写为文件名,将值写为文本
【发布时间】:2014-04-28 07:18:30
【问题描述】:

我有一个包含多个值的键的哈希。我想创建一个新文件,其键值为文件名。然后我想在文件的新行上添加每个值元素。

但是我收到以下错误:

`initialize':没有将 Symbol 隐式转换为 String (TypeError)

    @agency_list.each do |domain, email|
        File.open(domain , "w") { |file| file.write(email) }
    end

我尝试将值元素转换为字符串,但这并没有改变任何东西。

【问题讨论】:

  • 将您的哈希添加到问题中。
  • 哈希是巨大而动态的。基本上它包含作为键的电子邮件域和作为值的电子邮件地址。
  • 您是否使用符号(如:foo)作为键或值?如果是这样,您如何将它们转换为字符串?

标签: ruby file hash symbols


【解决方案1】:

看起来你在应该放入字符串的地方使用了符号。

因为信息有限。尝试改变:

File.open(domain , "w") { |file| file.write(email) }

File.open(domain.to_s , "w") { |file| file.write(email) }

File.open(domain , "w") { |file| file.write(email.to_s) }

或在"domain""email" 中添加“to_s”来检查哪个是正确的,然后您可能会知道哪个部分是错误的。

【讨论】:

    猜你喜欢
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 2015-09-19
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多