将if语句添加到do-end块

时间:2013-06-24 05:22:46

标签: ruby-on-rails ruby-on-rails-3 if-statement erb

我用rails content_tag重写了我的html代码,现在我想向它们添加if语句。

我之前:

<% if ... %>
    <div class='...'>
    ...
    </div>
<% end %>

现在我有两种类型的这个块:

<%= content_tag(:div, ..., class: 'some_class') if ... %>

这没关系。但是当我尝试将if语句添加到do-end块时,它会失败:

<%= content_tag(:div, class: 'some_class') if ... do %>
    ...
<% end %>

我看到了这一点,而不是div内容:

<div>{:class=>"some_class"}</div>

谢谢!

2 个答案:

答案 0 :(得分:13)

你必须使用:

<%if ... %>
    <%= content_tag(:div, class: 'some_class') do %>
    ...
    <% end %>
<% end %>

或在块之后使用if语句:

<%= content_tag(:div, class: 'some_class') do %>
    ...
<% end if .......%>

答案 1 :(得分:4)

尝试

<%= content_tag(:div, class: 'some_class')  do %>
    ...
<% end if ... %>