Ruby-on-rails Rails 中的 if 语句

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4776767/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-03 00:10:29  来源:igfitidea点击:

if statement in rails

ruby-on-rails

提问by SHUMA

I trying to learn rails by doing some labs in railsforzombies, I am in lab3 (if statements).

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

It has two tables:

它有两个表:

  • Zombies{id, name, graveyard}
  • Tweets{id, status, zombie_id}
  • 僵尸{id,名称,墓地}
  • 推文{id,状态,zombie_id}

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

目标在每个区块中,如果僵尸有超过 1 条推文,则打印出 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.

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

回答by Clint Miller

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

回答by scragz

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

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

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

注意:计数/长度/大小都略有不同

Edit: more than 1.

编辑:超过1。

回答by Gabriel Balbuena

This works!!

这有效!!

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

回答by Ryan Hell

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

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

<% zombies = Zombie.all %>

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

回答by Stefflan00

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

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

回答by Syed Aslam

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>

回答by emilioriosvz

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

This worked for me

这对我有用

回答by Dan

I tried it, it works!

我试过了,有效!

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