0

任何人都知道为什么当我尝试使用花括号块语法时会出现语法错误Rails.cache.fetch

这会出现错误(语法错误,意外的'{',期待keyword_end(SyntaxError))

Rails.cache.fetch "person/#{id}" { find(id) }

以下作品:

Rails.cache.fetch "person/#{id}" do
  find(id)
end
4

2 回答 2

0

短块需要 () 才能识别它应该看起来像这样的语法

Rails.cache.fetch("person/#{id}") { find(id) }
于 2012-08-16T18:04:48.760 回答
0

这是因为 {} 的优先级与 do end 不同。在第一个表达式中,它们与表达式的“person/#{id}”部分相关联。

所以你的第一个例子类似于:

Rails.cache.fetch("person/#{id}" { find(id) })

而第二个是:

Rails.cache.fetch("person/#{id}") { find(id) }
于 2012-08-16T18:05:03.380 回答