我的代码
出现语法错误render json: {
"what" => "created",
"whatCreated" => "thing",
"htmlOutput" => render_to_string (partial: "some_partial")
}
但是使用此代码我不会:
render json: {
"what" => "created",
"whatCreated" => "thing",
"htmlOutput" => render_to_string(partial: "some_partial")
}
在render_to_string
打破我的rails应用程序后,该空格怎么来?
答案 0 :(得分:9)
Array.new 1,2
并且ruby知道它在空格后接收参数。你也可以运行Array.new(1,2)
并且ruby知道args在括号内。
但是,当你运行Array.new (1,2)
时,ruby认为它将在空格后接收参数,但实际上它会收到一个元组(1,2)
,并且基本上它与Array.new((1,2))
所以底线:
Array.new (1,2)
== Array.new((1,2))
这就是语法错误,因为(1, 2)
字面值不是有效的
答案 1 :(得分:3)
作为一般的Ruby样式指南,您不应在参数列表括号前添加空格。这与rails无关,而是Ruby语言。尝试以下内容:
Array.new(1,2) # => [2]
Array.new (1,2) # = > SyntaxError: unexpected ',', expecting ')'
Array.new(1) # => [nil]
Array.new (1) # => [nil]
正如您在第二个示例中看到的那样,代码中断了,解释器希望找到)
但找到,
。然而,在最后一个例子中它没有破坏。