Explain render_if_exists opts caveat

This commit is contained in:
Luke Bennett 2019-05-16 15:06:40 +00:00
parent bc852e05e3
commit bc545cfd7c
1 changed files with 13 additions and 1 deletions

View File

@ -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,