任何人都知道为什么当我尝试使用花括号块语法时会出现语法错误Rails.cache.fetch
这会出现错误(语法错误,意外的'{',期待keyword_end(SyntaxError))
Rails.cache.fetch "person/#{id}" { find(id) }
以下作品:
Rails.cache.fetch "person/#{id}" do
find(id)
end
任何人都知道为什么当我尝试使用花括号块语法时会出现语法错误Rails.cache.fetch
这会出现错误(语法错误,意外的'{',期待keyword_end(SyntaxError))
Rails.cache.fetch "person/#{id}" { find(id) }
以下作品:
Rails.cache.fetch "person/#{id}" do
find(id)
end
短块需要 () 才能识别它应该看起来像这样的语法
Rails.cache.fetch("person/#{id}") { find(id) }
这是因为 {} 的优先级与 do end 不同。在第一个表达式中,它们与表达式的“person/#{id}”部分相关联。
所以你的第一个例子类似于:
Rails.cache.fetch("person/#{id}" { find(id) })
而第二个是:
Rails.cache.fetch("person/#{id}") { find(id) }