当我尝试使用Rails.cache.fetch
此错误输出错误(语法错误,意外' {',期待keyword_end(SyntaxError))
Rails.cache.fetch "person/#{id}" { find(id) }
以下作品:
Rails.cache.fetch "person/#{id}" do
find(id)
end
答案 0 :(得分:0)
短块需要()才能识别它看起来像
的语法Rails.cache.fetch("person/#{id}") { find(id) }
答案 1 :(得分:0)
这是因为{}具有与结束不同的优先级。在第一个表达式中,它们与表达式的“person /#{id}”部分相关联。
所以你的第一个例子类似于:
Rails.cache.fetch("person/#{id}" { find(id) })
而第二个是:
Rails.cache.fetch("person/#{id}") { find(id) }