我写了以下ERB,并在问号上出现语法错误。来自devise的这个辅助函数当前评估为false。我错过了什么?
<%= if user_signed_in? %>
<%= render 'form' %>
<%= end %>
答案 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 %>