僵尸之路 - 实验3>练习4

时间:2011-02-20 19:11:57

标签: ruby-on-rails

我尝试解决这个练习2个小时,但我找不到解决办法?

有人,请帮忙吗?

http://railsforzombies.org/labs/3/exercises/16

练习:

  

目标

     

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

     

您的数据库:

Zombies
id  name  graveyard
1   Ash   Glen Haven Memorial Cemetary
2   Bob   Chapel Hill Cemetary
3   Jim   My Fathers Basement

Tweets
id  status                                    zombie_id
1   Where can I get a good bite to eat?       1
2   My left arm is missing, but I don't care  2
3   I just ate some delicious brains          3
4   OMG, my fingers turned green.             1
  

观看代码:

<% zombies = Zombie.all %>

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

4 个答案:

答案 0 :(得分:8)

您正在寻找的代码是:

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

答案 1 :(得分:0)

知道为什么这不起作用?我正打算再打一次这个僵尸来获取所有推文。

<% t = Tweet.where(:id => zombie.id) %>
<% if t.size > 1 %>
<%= 'SMART ZOMBIE' %>
<% end %>

我不断得到的错误是:

#<ActionView::Template::Error: uninitialized constant ActionView::CompiledTemplates::Tweet>

或者你认为本教程只适用于一个解决方案,你不能打电话来访问推文表吗?

答案 2 :(得分:0)

原始提示#1

  

使用.size或.count方法查看僵尸是否有多条推文。

原始提示#2

可能的正确答案是:

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

答案 3 :(得分:0)

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

Print Exercise