我是rails的新手并且卡住了:我有一个文章,主题和链接的模型。在显示整篇文章的页面上,我在div框中显示所有@topics
和所有@links
,它们与本文(@topics.each
...)相关联。
有时,这篇文章中没有/没有主题/主题或链接/链接,我不想显示div框。
如何测试实例变量@topics是否为空,因此不能显示?我是在视图中检查这个还是在控制器中检查它?由于我没有真正的线索,我不知道从哪里开始寻找。
答案 0 :(得分:1)
在视图中,将each
循环放在unless @topics.empty?
下。
编辑:但这并未涵盖未设置@topics
实例变量的情况。有关更好的模式,请参阅tadman的回复。
答案 1 :(得分:1)
通常的模式是:
if (@topics.present?)
@topics.each do |topic|
# ... Show each row
end
else
# .. Show a "no entires" row.
end
答案 2 :(得分:0)
我可能误解了你的问题。
假设:
erb
,@article
变量和@article.topics
然后我认为你可以这样做:
<%- if @article.topics.any? %>
<div class='topics'>
<%- @article.topics.each do |topic| %>
<div class='topic'>
... do some stuff
</div>
<% end %>
</div>
<% end %>
当然,类似于@article.links
。
我的erb
非常生疏,所以我可能在那里遇到了问题。