Rails if语句语法

时间:2011-07-15 11:00:45

标签: ruby-on-rails erb

我写了以下ERB,并在问号上出现语法错误。来自devise的这个辅助函数当前评估为false。我错过了什么?

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

3 个答案:

答案 0 :(得分:79)

试试这个:

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

如果您执行&lt;%= ...%&gt;,它会尝试输出您在标记之间放置的内容。但是,如果您执行&lt;%...%&gt;,则不会处理任何输出,只会评估代码。如果这不起作用,那么你的user_signed_in可能有问题吗?辅助方法。

答案 1 :(得分:25)

<%=会尝试输出您的user_signed_in?助手,请尝试:

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

甚至更好(并且更少混淆):

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

答案 2 :(得分:2)

试试这个

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