From bc545cfd7cb0c1405943aac55881356c9016b1c3 Mon Sep 17 00:00:00 2001 From: Luke Bennett Date: Thu, 16 May 2019 15:06:40 +0000 Subject: Explain render_if_exists opts caveat --- doc/development/ee_features.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/development/ee_features.md b/doc/development/ee_features.md index 8706fe537fa..9db28bcddf8 100644 --- a/doc/development/ee_features.md +++ b/doc/development/ee_features.md @@ -446,16 +446,28 @@ The disadvantage of this: port `render_if_exists` to CE. - If we have typos in the partial name, it would be silently ignored. + +##### Caveats + The `render_if_exists` view path argument must be relative to `app/views/` and `ee/app/views`. Resolving an EE template path that is relative to the CE view path will not work. ```haml - # app/views/projects/index.html.haml -= render_if_exists 'button' # Will not render `ee/app/views/projects/_button` and quietly fail += render_if_exists 'button' # Will not render `ee/app/views/projects/_button` and will quietly fail = render_if_exists 'projects/button' # Will render `ee/app/views/projects/_button` ``` +You should not explicitly set render options like `partial` or provide a `locals` hash. +The first argument should be a path string and the second can be a hash replacing `locals`. + +```ruby +render partial: 'projects/button', locals: { project: project } +# becomes +render_if_exists 'projects/button', project: project +``` + #### Using `render_ce` For `render` and `render_if_exists`, they search for the EE partial first, -- cgit v1.2.3