我遇到了一个问题,页面上显示了一个额外的向上和向下按钮。我怎样才能解决这个问题? 我的看法如下:
<% @group.posts.each do |p| %>
<tr>
<td>
<%= p.body %>
</td>
<td>
<div>
<button type="button" class="btn btn-default btn-sm">
<span class="glyphicon-arrow-up">Up</span>
</button>
<%= p.votes %>
<button type="button" class="btn btn-default btn-sm">
<span class="glyphicon-arrow-down">Down</span>
</button>
</div>
</td>
</tr>
<% end %>
我的控制器:
def show
@group = Group.find_by_name(params[:name])
@post = @group.posts.new
end
答案 0 :(得分:3)
通过致电
@group.posts.new
您正在向该组添加一个空的帖子,您会看到为其显示的按钮。
您可以将之前的所有帖子分配给控制器中的另一个变量,并使用它来呈现所有帖子
@posts = @group.posts.to_a
或通过进行@post
初始化有点不同,
@post = Post.new(group: @group)
或者,您可以过滤要为其渲染按钮的帖子:
@group.posts.select(&:persisted?).each do |p|
答案 1 :(得分:0)
因为您在控制器中执行了@post = @group.posts.new
。它添加了空的Post对象。
您可以在迭代reload
=> @group.posts.reload.each do |p|