这个Ruby片段中的语法错误在哪里?

时间:2015-08-03 03:48:12

标签: ruby ruby-on-rails-3 prawn

拔掉我的头发......

Prawn::Document.generate(@targetfile) do |pdf|

  pdf.bounding_box ([80, 510] , :width => 400) do

    pdf.text("hello")

  end

end

为"逗号"提供语法错误,意外',',期待' 。就在:width =>之前400

我用Ruby 1.9.3和2.1试过这个 - 都给出了同样的错误。我改变的唯一另一件事是我将虾版本从1.0升级到2.0 - 根据手册使用这样的大虾应该仍然可以。但/ / p>

2 个答案:

答案 0 :(得分:8)

同意安德鲁的回答。在ruby中使用函数调用时,可以使用没有括号的空格,也可以使用括号和空格,但不能同时使用两者。这样:

pdf.bounding_box([80, 510] , :width => 400)没问题

pdf.bounding_box [80, 510] , :width => 400也没关系

但你不能做空格和括号。现在在你的情况下,因为你想把它的结果链接到一个do / end块,你将不得不使用括号,所以选项1是唯一的方法。

答案 1 :(得分:4)

这是因为bounding_box和括号之间的空格。