How do i check if a variable exist, in eex?
EDIT Prior to Phoenix 0.14.0 @company
would return nil if it was not set. It was changed to raise so that the assignment would be explicit (explicit over implicit.)
If you use either @company
or assigns.company
then an error will be raised. However if you use assigns[:company]
then it will return nil if the value is not set.
<%= if assigns[:company] do %>
<%= Logo.url({@company.logo, @company}, :thumb) %>
<% end %>
It is worth noting that if you are using a nested template then you will need to pass this through too:
<h1>New thing</h1>
<%= render "form.html", changeset: @changeset,
action: thing_path(@conn, :create),
company: assigns[:company] %>
The selected answer doesn't work.
Try with this :
<%= if Map.has_key?(assigns, :company) do %>
<%= Logo.url({@company.logo, @company}, :thumb) %>
<% end %>