Rails语法错误与`Count`

时间:2016-06-08 19:32:20

标签: ruby-on-rails

我有一个基本的应用程序,我试图在主页上显示最近的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%>该页面显示无错误。任何人都明白这里出了什么问题?

2 个答案:

答案 0 :(得分:1)

使用<%,而非<%=,该语句不会返回任何内容。

答案 1 :(得分:0)

您可以从= <%=移除<%= if @my_items.count >= 5 %>,这可能是ERB如何处理条件问题和<%= %>而不是<% %>的问题