Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/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 on rails 语法错误,意外';}';,期望::或';[';或';';_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 语法错误,意外';}';,期望::或';[';或';';

Ruby on rails 语法错误,意外';}';,期望::或';[';或';';,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,控制器中的这一行导致语法错误,但我找不到任何错误。有人能找出哪里出了问题吗 这是一个Rails应用程序。Ruby 2.2.0和Rails 4.2.0您忘记了括号([])。它应该是: row = Hash[new_hash.map { |k, v| k, v.encode("UTF-16BE", invalid: :replace, undef: :replace, replace: '?').encode("UTF-8") }] 顺便说一句:在Ruby 2.2中,您可能只需要使用删除无效字节,

控制器中的这一行导致语法错误,但我找不到任何错误。有人能找出哪里出了问题吗

这是一个Rails应用程序。
Ruby 2.2.0
Rails 4.2.0
您忘记了括号(
[]
)。它应该是:

row = Hash[new_hash.map { |k, v| k, v.encode("UTF-16BE", invalid: :replace, undef: :replace, replace: '?').encode("UTF-8") }]

顺便说一句:在Ruby 2.2中,您可能只需要使用删除无效字节,而不是将其编码为UTF-16并返回。@matt我会尝试使用它。谢谢您提供的信息。谢谢,@Marek Lipka。我对编程本身还不熟悉,所以我经常遇到这样的堆栈问题。无论如何,我很高兴能解决这个问题。
row = Hash[new_hash.map{ |k, v| [k, v.encode("UTF-16BE", invalid: :replace, undef: :replace, replace: '?').encode("UTF-8")] }]