Ruby 如何在视图外使用rails jbuilder
是否可以在视图之外使用jbuilder片段缓存 我尝试以以下方式使用jbuilder和缓存:Ruby 如何在视图外使用rails jbuilder,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,是否可以在视图之外使用jbuilder片段缓存 我尝试以以下方式使用jbuilder和缓存: Jbuilder.encode do |json| json.cache! ['v1', @people], expires_in: 10.minutes do json.array! @people do |person| json.id person.id json.name person.name end end end Json输出con
Jbuilder.encode do |json|
json.cache! ['v1', @people], expires_in: 10.minutes do
json.array! @people do |person|
json.id person.id
json.name person.name
end
end
end
Json输出conatins实际上是“缓存”,而不是进行缓存
输出示例:
“{\”version\”:1,“people\”:{\”cache!\“:[[{\”id\”:1,“name\”
是的,这是可能的,但并不是那么简单,因为缓存!
和数组!
都是在需要视图上下文的环境中定义的。您可以在Rails控制器中使用JbuilderTemplate
,如下所示:
template = JbuilderTemplate.encode(view_context) do |json|
json.cache! ['v1', @people], expires_in: 10.minutes do
json.array! @people do |person|
json.id person.id
json.name person.name
end
end
end
设置
视图\u上下文
很重要。在控制器之外,最好使用Rails.cache.fetch
(事实上,正是这样)。谢谢。最后,我使用了Rails.cache.fetch
。