这里的文档给出了Ruby IO中的EOF错误

时间:2015-10-24 14:34:28

标签: ruby string io eof

以下代码提供了两个我无法解决的错误。任何帮助将不胜感激:

random.rb:10: can't find string "TEMPLATE" anywhere before EOF
random.rb:3: syntax error, unexpected end-of-input

代码:

id = 2
File.open("#{id}.json","w") do |file|
file.write <<TEMPLATE
{
         "submitter":"#{hash["submitter"]}",
         "quote":"#{hash["quote"]}",
         "attribution":"#{hash["attribution"]}"
       }
       TEMPLATE
   end

1 个答案:

答案 0 :(得分:0)

From the documentation(强调我的):

  

heredoc从<<HEREDOC后面的行开始,HEREDOC

开头的下一行结束

您的代码不包含以TEMPLATE开头的行。如果您的文本编辑器(或IDE)支持搜索中的正则表达式,请尝试^TEMPLATE

您可以删除空格,或者如果要保留空格,请将<<TEMPLATE更改为<<-TEMPLATE。添加-指示Ruby解析器在您的代码中搜索(可能)您想要的TEMPLATE