Rails if语句语法

cjm*_*671 32 ruby-on-rails erb

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

<%= if user_signed_in? %>
<%= render 'form' %>
<%= end %>
Run Code Online (Sandbox Code Playgroud)

Ste*_*erD 81

试试这个 :

<% if user_signed_in? %>
  <%= render 'form' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

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


Mar*_*her 25

<%=将尝试输出您的user_signed_in?帮助,所以尝试:

<% if user_signed_in? %>
  <%= render 'form' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

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

<%= render 'form' if user_signed_in? %>
Run Code Online (Sandbox Code Playgroud)

  • 感谢您描述`<%=`和`<%`之间的区别 (2认同)