在content_tag中使用if时出错

时间:2016-02-24 17:12:23

标签: ruby-on-rails

我对此错误感到困惑。我是铁杆新手,我无法理解。

<% flash.each do |name,msg| %>
  <div class='alert alert-<%="#{name}"%>' >
    <a href="#" class='close' data-dismiss='alert' &#215; ></a>
    <%= content_tag :div , msg, :id => "flash_#{name}" if msg.is_a?(String); %>        
  </div>
<% end %>

错误信息是:

  

语法错误,意外')'if msg.is_a?(String); ); @ output_buffer.safe_append ='^ /home/mody/Desktop/rails_apps/testing/app/views/layouts/application.html.erb:51:语法错误,意外的keyword_ensure,期待')'/ home / mody / Desktop /rails_apps/testing/app/views/layouts/application.html.erb:53:语法错误,意外的keyword_end,期待')'

1 个答案:

答案 0 :(得分:1)

这里有很多语法问题。将您的行更改为以下内容:

<%= content_tag(:div, msg, {:id => "flash_#{name}"}) if msg.is_a?(String) %>
  1. 您应该在括号内包含content_tag个参数,以确保Ruby在引入if条件时不会感到困惑
  2. Ruby在行尾不需要分号