1

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

- 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>

.daily-entry

应该包含在条件中

如果条件为真

<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>
4

3 回答 3

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}"
于 2009-09-20T19:40:53.487 回答
2

你不想

if !@lastday.nil?

代替

if @lastday.nil?
于 2009-09-20T19:42:17.620 回答
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}"

应该有一种方法来解决这种重复,但我想不出它应该是什么——一个可能需要一个块的辅助函数。

于 2009-09-20T20:51:13.470 回答