2014-12-02 10 views
11

chcę renderować szablon JBUILDER takiego:Jak mogę renderować jeden element dwukrotnie w jBiler?

json.author do 
    json.partial! 'user', user: @user 
end 
json.owner do 
    json.partial! 'user', user: @user 
end 

wydaje się stratą do renderowania jedną częściową dwa razy, mogę uczynić w ten sposób?

user_json = json.some_render_partial! 'user', user: @user 
json.author { user_json } 
json.owner { user_json } 

Odpowiedz

5

Wydaje strata uczynić jedną częściową dwa razy, mogę uczynić w ten sposób?

Jeśli problem dotyczy zminimalizowania kodu, można użyć proc s.

user_json = proc { json.partial! 'user', user: @user } 

json.author &user_json 
json.owner &user_json 

Ponadto, jeśli problemem jest to, aby zwiększyć wydajność, a jednym ze sposobów jest pamięć podręczną częściowe. Spróbuj tego, ale czasami buforowanie może być wolniejsze. Tak więc należy pamiętać, jeśli spełnia następujące kryteria:

  • Częściowa obejmuje mocny obliczeń, które są średnio droższe niż dostęp do pamięci podręcznej. jak Połączenia Web API lub Ar odpytuje

  • Wielkość blob JSON produkowanych jest mały

Zobacz więcej informacji na ten [Jbuilder Rails caching is slower]

Powiązane problemy