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>
精彩评论