我想呈现这样的 jbuilder 模板:
json.author do
json.partial! 'user', user: @user
end
json.owner do
json.partial! 'user', user: @user
end
渲染一个部分两次似乎很浪费,我可以这样渲染吗?
user_json = json.some_render_partial! 'user', user: @user
json.author { user_json }
json.owner { user_json }
最佳答案
It seems a waste to render one partial twice, can I render like this?
如果您关心的是最小化代码,那么可以,您可以使用
proc
s。user_json = proc { json.partial! 'user', user: @user }
json.author &user_json
json.owner &user_json
此外,如果您关心的是提高性能,那么一种方法是缓存您的部分。尝试这个
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
但是,有时缓存会变慢。因此,请记住它是否满足以下条件:
有关更多信息,请参阅此信息 [ Jbuilder Rails caching is slower ]
关于ruby-on-rails - 如何在 jbuilder 中渲染一个部分两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27245020/