如果声明在铁路

时间:2011-01-23 21:48:45

标签: ruby-on-rails

我尝试通过在railsforzombies中做一些实验来学习rails,我在lab3(if语句)。

它有两个表:

  • Zombies {id,name,graveyard}
  • 推文{id,status,zombie_id}

目标 在每个区块中,如果Zombie有超过1条推文,则打印出SMART ZOMBIE

 <% zombies = Zombie.all %>

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

我尝试了一些解决方案,但我弄错了。

8 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:6)

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

注意:计数/长度/大小均为subtly different

编辑:超过1个。

答案 2 :(得分:5)

这有效!!

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

答案 3 :(得分: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>

答案 4 :(得分:1)

我还可以做下面的工作并继续下去,很想知道这是不是坏事。


在每个区块中,如果Zombie有超过1条推文,则打印出SMART ZOMBIE

<% zombies = Zombie.all %>

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:0)

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

这对我有用

答案 7 :(得分:0)

我尝试过,它有效!

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