如果是其他错误

时间:2009-09-20 19:26:09

标签: ruby-on-rails ruby haml

这是我的代码。我对空格有疑问。我无法得到正确的一代

- if @lastday.nil? && @lastday != item.created_at.strftime("%d %b %Y")
  .daily-entry
    %h1.date
      =h item.created_at.strftime("%d")
      %span
        =h item.created_at.strftime("%b, %Y")
-else
  .entry
      %h1
        = link_to item.title, "/items/#{item.id}"

生成此

<div class='daily-entry'> 
 <h1 class='date'> 
   20
   <span> 
    Sep, 2009
    </span> 
 </h1> 
</div> 
<div class='entry'> 
 <h1> 
  <a href="/items/15">xcvxcvx</a> 
 </h1>
</div>

但我想要一个HTML

<div class='daily-entry'> 
 <h1 class='date'> 
   20
   <span> 
    Sep, 2009
    </span> 
 </h1> 
 <div class='entry'> 
   <h1> 
     <a href="/items/15">xcvxcvx</a> 
   </h1>
 </div>
</div>

。每日-条目

应包含在条件

如果条件为真

<div class='daily-entry'> 
 <h1 class='date'> 
   20
   <span> 
    Sep, 2009
    </span> 
 </h1>
 <div class='entry'> 
  <h1> 
   <a href="/items/15">xcvxcvx</a> 
  </h1>
 </div>
</div>

如果条件错误

<div class='entry'> 
 <h1> 
  <a href="/items/15">xcvxcvx</a> 
 </h1>
</div>

3 个答案:

答案 0 :(得分:2)

只需移动if中的.daily-entry

.daily-entry
  - if @lastday.nil? && @lastday != item.created_at.strftime("%d %b %Y")
    %h1.date
      =h item.created_at.strftime("%d")
      %span
        =h item.created_at.strftime("%b, %Y")
  -else
    .entry
      %h1
        = link_to item.title, "/items/#{item.id}"

答案 1 :(得分:2)

你不想要

if !@lastday.nil?

而不是

if @lastday.nil?

答案 2 :(得分:1)

看起来您必须将该条目复制为第一个剪辑:

-if @lastday.nil? && @lastday != item.created_at.strftime("%d %b %Y")
  .daily-entry
    %h1.date
      =item.created_at.strftime("%d")
      %span= item.created_at.strftime("%b, %Y")
    .entry
      %h1= link_to item.title, "/items/#{item.id}"
-else
  .entry
    %h1= link_to item.title, "/items/#{item.id}"

应该有一种方法来获得重复,但我不能想到它应该是什么 - 可能需要一个块的辅助函数。