Ton*_*Han 11 ruby-on-rails jbuilder
我想渲染一个像这样的jbuilder模板:
json.author do
json.partial! 'user', user: @user
end
json.owner do
json.partial! 'user', user: @user
end
Run Code Online (Sandbox Code Playgroud)
渲染一个部分两次似乎是浪费,我可以像这样渲染吗?
user_json = json.some_render_partial! 'user', user: @user
json.author { user_json }
json.owner { user_json }
Run Code Online (Sandbox Code Playgroud)
渲染一个部分两次似乎是浪费,我可以像这样渲染吗?
如果您关注的是最小化代码,那么是的,您可以使用procs.
user_json = proc { json.partial! 'user', user: @user }
json.author &user_json
json.owner &user_json
Run Code Online (Sandbox Code Playgroud)
此外,如果您的关注是提升性能,那么一种方法是缓存您的部分.试试这个
user_json = proc {
json.cache! @user, expires_in: 10.minutes do
json.partial! 'user', user: @user
end
}
json.author &user_json
json.owner &user_json
Run Code Online (Sandbox Code Playgroud)
但是,有时缓存可能会更慢.因此,请记住它是否符合以下条件:
部分包含大量计算,平均比访问缓存更昂贵.像WEB API调用或AR查询
生成的JSON blob的大小很小
有关详细信息,请参阅此内容[ Jbuilder Rails缓存速度较慢 ]
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |