Rails if statement syntax

2019-04-17 20:24发布

问题:

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 %>

回答1:

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.



回答2:

<%= 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? %>


回答3:

try this

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