Rails link_to do block给出了'unexpected keyword_do_block`错误

时间:2013-09-16 12:05:27

标签: ruby-on-rails ruby

我正在尝试使用Ruby 1.9.3在Rails 2.3.14中使用link_to块,这会导致它 ActionView::TemplateError syntax error, unexpected keyword_do_block

HTML

<% @contents.each do |item| %>

  <%= link_to "#" do %> # this is the line referenced in the error message
    <%= content_tag(:h3, item.title) %>
    <div class="details">
      # divs with text
    </div>
  <% end %>

<% end %>

详细错误消息

错误消息中包含的代码行与上面包含的代码不完全匹配,我将其简化为调试,但您可以看到引用的行是相同的。

ActionView::TemplateError (/my/file/_partial.html.erb:78: syntax error, unexpected keyword_do_block
...;@output_buffer.safe_concat((do).to_s);@output_buffer.safe_c...
...                               ^
/my/file/_partial.html.erb:97: syntax error, unexpected keyword_else, expecting keyword_end
');       else
              ^
/my/file/_partial.html.erb:123: syntax error, unexpected keyword_ensure, expecting $end) on line #78 of app/views/content/_list.html.erb:
75:                 <%= hoverhide_image(item) %>
76:               </div>
77:               <div class="hovershow">
78:                 <%= link_to("#") do %>
79:                   <%= content_tag(:h3, item.title) %>
80:                   <div class="details">
81:                     <div>

如果我用link_to标记替换a块,则会完美呈现。

如果我从第3行移除=(改为使其<% link_to "#" do %>),则不会引发任何错误,但当然我的文字不会呈现。

知道发生了什么事吗?

(已编辑以添加有关错误消息的更多详细信息)

0 个答案:

没有答案