如何防止空实例出现在视图中?

时间:2013-08-11 08:00:07

标签: ruby-on-rails ruby-on-rails-3

topics_controller.rb为显示页面中的内联表单创建了一个新的@reply实例变量。

def show
  @topic = Topic.find(params[:id])
  @replies = @topic.replies
  @reply = @topic.replies.new
end

现在,当我遍历@replies以显示和设置现有回复样式时,由于控制器中新回复的实例,会出现一个空div。

<% @replies.each do |reply| %>
    <div class="reply span8">
      <%= reply.body %>
    </div>
<% end %>

如何处理此问题并隐藏@topic.replies.new实例不显示?

2 个答案:

答案 0 :(得分:1)

试试这个:

<% @replies.each do |reply| %>
  <% next unless reply.body %>
    <div class="reply span8">
      <%= reply.body %>
    </div>
<% end %>

答案 1 :(得分:0)

您可以直接轻松创建新实例:

def show
  @topic = Topic.find(params[:id])
  @replies = @topic.replies
  @reply = Reply.new(topic_id: params[:id])
end