开发者

if statement in rails

I trying to learn rails by doing开发者_如何学Python some labs in railsforzombies, I am in lab3 (if statements).

It has two tables:

  • Zombies{id, name, graveyard}
  • Tweets{id, status, zombie_id}

Objective In the each block, if a Zombie has more than 1 tweet, print out SMART ZOMBIE

 <% zombies = Zombie.all %>

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

I have tried some solutions but I get it wrong.


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


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

Note: count/length/size are all subtly different.

Edit: more than 1.


This works!!

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


This should work:

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


I was alternately able to make the following work and pass on, would love to hear if this is bad or not.


In the each block, if a Zombie has more than 1 tweet, print out SMART ZOMBIE

<% zombies = Zombie.all %>

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


<ul>
  <% zombies.each do |zombie| %>
    <li>

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


<% if zombie.tweets.count > 1 %>
  <em> SMART ZOMBIE </em>
<% end %>

This worked for me


I tried it, it works!

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜