使用集合呈现Bootstrap3表的问题

时间:2014-10-09 09:28:07

标签: html ruby-on-rails twitter-bootstrap-3

我有一个组织视图,我希望将其部分呈现,以便向组织用户展示一系列其他功能。为此,我设置了一个Bootstrap面板,在这个面板中我想渲染一个bootstrap Table,以显示属于组织的每个用户。我可以在没有表css的情况下正常工作(就像每行显示一个用户的单独div元素一样),但出于某种原因,当我来创建一个表时,事物继续为每个User对象构建全新的div。你能帮忙吗?

组织展示页面html:

<div class="col-md-6">
        <ul class="users">
        <div class="panel panel-default">
          <div class="panel-heading float-left">
            <% if current_user.admin? %>
            <%= link_to "Add more users", add_user_path(current_user.organization), class: "btn btn-large btn-success btn-panel" %>
            <% end %>
            <h2 class="panel-title">Users:</h2>
          </div>
            <div class="panel-body panel-height">
                <%= render partial: "users_index", collection: @users_index, as: :user %>
                <br></br>
            </div>
        </div>
        </ul>
</div>

我的users_index部分的html:

<div class="table-responsive">
<table class="table table-striped">
<thead>
    <tr>
        <th>Name</th>
        <th>Action</th>
    </tr>
</thead>
<tbody>
        <tr>
            <td>
            <%= link_to user.name, user %>
            </td>
            <td>
            <% if current_user.admin? && !current_user?(user) %>
                <%= link_to "delete", user, method: :delete,
                                            data: {confirm: "You sure?" }, 
                                            class: "btn btn-sm btn-danger pull-right"%>
            <% end %>
            </td>
        </tr>
</tbody>
</table>
</div>

定义users_index的地方(我的组织控制器显示功能):

def show
 @organization = Organization.find(params[:id])
 @users_index = @organization.users
end

我尝试在&lt;%= users_index.each do | user |中包装所有内容%GT;阻止,但这只是打印出表头上方每个用户的完整对象以及下面生成的HTML。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

问题来自这一行:

<%= render partial: "users_index", collection: @users_index, as: :user %>

当您将部分渲染为用户时,它会渲染部分的全部内容,就像您将其置于循环中一样。解决方案是将表格样式放入组织显示页面,然后只保留部分内容和类。