我尝试解决这个练习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>
答案 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)
使用.size或.count方法查看僵尸是否有多条推文。
可能的正确答案是:
<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>