Rails语法错误ERB:期待$ end

时间:2014-04-05 21:12:39

标签: ruby-on-rails

以下代码是渲染错误: 语法错误,意外的keyword_ensure,期待$ end

<div id="Carousel">
    <% results = @client.search("Twitter", :result_type => "mixed").take(3).to_a %>
    <div class="carousel-inner">
        <div class="active item">
            <p><%= "results[0].text"%></p>
        </div>
        <div class="item">                
            <p><%= "results[1].text"%></p>
        </div>
        <div class="item">
            <p><%= "results[2].text"%></p>
        </div>
    </div>
    <% end %>
</div> 

老实说,我不知道为什么会这样。我已经尝试过排除故障,但我无处可去。我确定这是一个小错误,但我无法弄清楚。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

正如 iltempo 在评论中提到的那样:remove the <% end %> line.

  

如果你不介意,你能解释为什么不需要吗?

因为你在第2行所做的不是一个块,你只需在那里设置一个稍后使用的变量。阻止示例:

<% User.all.each do |u| %>
 <%= u.email %>
<% end %>

<%= link_to user do %>
 <%= u.email %>
<% end %>

答案 1 :(得分:1)

&lt; %%&gt;之间的东西是红宝石代码。

<%= %>将结果插入到html中,例如

<% x = 3 %>会将ruby变量x设置为3但是 <%= x = 3 %>会将ruby变量x设置为3,并将值3插入html

如果你看一下红宝石代码的含义,就像这样:

results = @client.search("Twitter", :result_type => "mixed").take(3).to_a
"results[0].text"
"results[1].text"
"results[2].text"
end

如果你看一下,你会注意到“结束”声明不合适。 我也认为你可能不希望结果陈述周围的“”