Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby将哈希键写入文件名,将值写入文本_Ruby_File_Hash_Symbols - Fatal编程技术网

Ruby将哈希键写入文件名,将值写入文本

Ruby将哈希键写入文件名,将值写入文本,ruby,file,hash,symbols,Ruby,File,Hash,Symbols,我有一个散列,它有一个具有多个值的键。我想用键值作为文件名创建一个新文件。然后我想在文件的新行中添加每个value元素 但是,我得到以下错误: `初始化”:没有将符号隐式转换为字符串(TypeError) 我试图将值元素转换为字符串,但这并没有改变任何事情。看起来您在应该放入字符串的位置使用了符号 因为信息有限。尝试更改: File.open(domain , "w") { |file| file.write(email) } 到 及 或者在“域”和“电子邮件”中都添加“to_s”,以检查哪一

我有一个散列,它有一个具有多个值的键。我想用键值作为文件名创建一个新文件。然后我想在文件的新行中添加每个value元素

但是,我得到以下错误:

`初始化”:没有将符号隐式转换为字符串(TypeError)


我试图将值元素转换为字符串,但这并没有改变任何事情。

看起来您在应该放入字符串的位置使用了符号

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

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


或者在
“域”
“电子邮件”
中都添加“to_s”,以检查哪一个是正确的,然后您可能知道哪一部分是错误的。

将您的哈希添加到问题中。哈希是巨大且动态的。基本上,它以电子邮件域作为键,以电子邮件地址作为值。您是否使用符号(如
:foo
)作为键或值?如果是,如何将它们转换为字符串?
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) }