2015-10-05 50 views
0

我是新來的rails,所以任何幫助和建議將不勝感激。當截止日期小於今天的日期時隱藏內容 - rails 4

  • 我想隱藏一個招聘廣告(與CSS),如果它的deadline日期小於今天的日期。
  • 我的代碼是不工作的廣告不被隱藏
  • 將十分感激,如果能告訴我,或者如果有編碼這個

更好的有效的方式感謝你

視圖/廣告/ index.html.erb

<table> 
<thead>  
    <tr> 
    <th>Title</th> 
    <th>Status</th>    
    <th>Content</th>  
    <th>Deadline</th>  
    </tr> 
</thead>  
<tbody>  
    <% @adverts.each do |advert| %> 
    <% if advert.deadline < Date.today %> 
    <div class="hide">  
    <tr>   
    <td><%= advert.title %></td> 
    <td><%= 「expired」 %></td>   
    <td><%= advert.content %></td>  
    <td><%= advert.deadline %></td>   
    </tr> 
    </div > 
    <% else %> 
    <div >  
    <tr>   
     <td><%= advert.title %></td> 
     <td><%= 「active」 %></td> 
     <td><%= advert.content %></td>  
     <td><%= advert.deadline %></td>   
    </tr> 
    </div > 
    <% end %> 
    <% end %> 
</tbody> 
</table> 

application.css

.hide { 
display:none 
} 
+0

是缺乏語言的引用'「'周圍隱藏錯字 –

+0

只是糾正了 - 但仍然無法正常工作@japed – ARTLoe

+1

如果你要隱藏這些廣告,爲什麼你需要它們在你的收藏?,你是否在頁面的其他地方顯示它們?如果不是,爲什麼不改變你的查詢來排除這些?如果你仍想使用你的'if'語句,是不是你今天的「過期」廣告的截止日期?如果是這樣,那就是錯誤,你隱藏了過期日期是昨天或更早的廣告。 – fanta

回答

1

而是用DIV包裹TR的,只是套用 「.hide」 類問題的TR。不應該將Div用作桌上的直接孩子!

<% @adverts.each do |advert| %> 
    <% if advert.deadline < Date.today %>  
    <tr class="hide">   
    <td><%= advert.title %></td> 
    <td><%= 「expired」 %></td>   
    <td><%= advert.content %></td>  
    <td><%= advert.deadline %></td>   
    </tr> 
<% else %> 
1

供參考:

Date.today從Date.current

不同

- >Date.current也返回Date.today如果時區爲不設置其他明智當前時區的 返回Today's Date 。我們可以通過更改時區來驗證這一點。

如果你做比較,你應該總是使用Date.current

這是因爲,如果你在一個時區,可能是在不同的一天,而不是UTC,你的時區沒有設置那麼你可以有情況其中Date.today == Date.tomorrow

因此,這將是更優選

<% if advert.deadline < Date.current %>