2011-01-23 134 views
6

我試圖通過在railsforzombies中做一些實驗來學習rails,我在lab3中(如果聲明)。如果在rails中聲明

它有兩個表:

  • 殭屍{ID,名稱,墓地}
  • 鳴叫{ID,狀態,zombie_id}

目的 在每個塊如果殭屍有超過1條推文,請打印出SMART ZOMBIE

<% zombies = Zombie.all %> 

<ul> 
    <% zombies.each do |zombie| %> 
    <li> 
     <%= zombie.name %> 
     # add if statement here 
    </li> 
    <% end %> 
</ul> 

我試過一些解決方案,但我弄錯了。

回答

6

<%= 'SMART ZOMBIE' if zombie.tweets.size > 1 %>

注:計數/長度/大小都是subtly different

編輯:超過1

+1

哦是的,`.any?`會更好。 – scragz 2011-01-23 21:54:01

+0

哦,是的,它的工作原理,我認爲我很難理解ruby/rails的語法。我怎麼做到這一點:「在每個塊中,讓殭屍的名字鏈接到它的編輯頁面」 - 我試過了:<%= link_to「編輯」,edit_tweet_path(tweet)%> .. – SHUMA 2011-01-23 22:44:55

8
<% if zombie.tweets.size > 1 %> 
    Smart Zombie! 
<% end %> 
1

這應該工作:

<ul> 
    <% zombies.each do |zombie| %> 
    <li> 
     <%= link_to zombie.name, edit_zombie_path(zombie) %> 
     <%= 'Smart Zombie' if zombie.tweets.count > 1 %> 
    </li> 
    <% end %> 
</ul> 
5

這個作品!

<% zombies = Zombie.all %> 
<ul> 
    <% zombies.each do |zombie| %> 
    <li> 
     <%= zombie.name %> 
     <%= 'SMART ZOMBIE' if zombie.tweets.count > 1 %> 
    </li> 
    <% end %> 
</ul> 
1

我交替地做了以下工作並傳遞,很想聽聽這種情況是否糟糕。


在每個塊,如果一個殭屍有超過1個鳴叫,打印出SMART ZOMBIE

<% zombies = Zombie.all %> 

<ul> 
    <% zombies.each do |zombie| %> 
    <li> 
     <%= zombie.name %> 
     if zombie > 1 tweet put "SMART ZOMBIE" 
    </li> 
    <% end %> 
</ul> 
1
<ul> 
    <% zombies.each do |zombie| %> 
    <li> 

     <%= zombie.name %> 
     <% if zombie.tweets.size > 1 %> 
     SMART ZOMBIE 
     <% end %> 
    </li> 
    <% end %> 
</ul> 
0
<% if zombie.tweets.count > 1 %> 
    <em> SMART ZOMBIE </em> 
<% end %> 

這爲我工作

0

我試了一下,有用!

<ul> 
    <% zombies.each do |zombie| %> 
     <li> 
      <%= zombie.name %> 
      <% if zombie.tweets.length > 1 %> 
       SMART ZOMBIE 
      <% end %> 
     </li> 
    <% end %> 
</ul>