35

I've written the following ERB and am getting a syntax error at the question mark. This helper function from devise currently evaluates as false. What have I missed?

<%= if user_signed_in? %>
<%= render 'form' %>
<%= end %>
eugen
  • 8,916
  • 11
  • 57
  • 65
cjm2671
  • 18,348
  • 31
  • 102
  • 161

3 Answers3

87

Try this :

<% if user_signed_in? %>
  <%= render 'form' %>
<% end %>

If you do <%= ... %>, it will try to output the thing you put between the tags. But, if you do <% ... %>, then no output is processed, just the code is evaluated. If this is not working, then there is probably something wrong with your user_signed_in? helper method.

KZcoding
  • 1,417
  • 4
  • 16
  • 26
SteenhouwerD
  • 1,819
  • 1
  • 16
  • 22
27

<%= will try to output your user_signed_in? helper, so try:

<% if user_signed_in? %>
  <%= render 'form' %>
<% end %>

or even better (and less confusing):

<%= render 'form' if user_signed_in? %>
Mario Uher
  • 12,249
  • 4
  • 42
  • 68
2

try this

<% if user_signed_in? %>
    <%= render 'form' %>
<% end %>
Mahesh
  • 6,378
  • 2
  • 26
  • 35