我有一个基本的应用程序,我试图在主页上显示最近的4个列表,然后链接到底部的“查看更多X ...”。如果有5个或更多的列表,逻辑工作得很好,但当有4个或更少的列表时,我会得到“看到更多...”或“看到更多......”这显然是不对的,所以我添加了具有相同基本组件的if语句,但是语法错误非常复杂:
arr(5:2:)
这是代码,显示有问题的行:
syntax error, unexpected ')', expecting keyword_then or ';' or '\n'
...end=( if @my_items.count >= 5 );@output_buffer.safe_append='
... ^
/Users/.../app/views/home/index.html.erb:50: syntax error, unexpected keyword_end, expecting ')'
'.freeze; end
^
/Users/.../app/views/home/index.html.erb:103: syntax error, unexpected keyword_else, expecting ')'
'.freeze; else
^
/Users/.../app/views/home/index.html.erb:122: syntax error, unexpected keyword_end, expecting ')'
'.freeze; end
^
/Users/.../app/views/home/index.html.erb:125: syntax error, unexpected keyword_ensure, expecting ')'
/Users/.../app/views/home/index.html.erb:127: syntax error, unexpected keyword_end, expecting ')'
只是澄清一下,如果我注释掉问题行并且它是相应的`<%end%>该页面显示无错误。任何人都明白这里出了什么问题?
答案 0 :(得分:1)
使用<%,
而非<%=
,该语句不会返回任何内容。
答案 1 :(得分:0)
您可以从=
<%=
移除<%= if @my_items.count >= 5 %>
,这可能是ERB如何处理条件问题和<%= %>
而不是<% %>
的问题