【问题标题】:Rails - Individual Sections for Each Object?Rails - 每个对象的单独部分?
【发布时间】:2017-03-17 01:45:38
【问题描述】:

因此,在我当前的 Rails 应用程序中,我正在努力允许用户创建活动和类别。这些类别的行为有点类似于文件夹,用户可以使用它们对活动进行排序。

我遇到的困难是不知道如何用 HTML 来实现它。我知道您可以使用“每个”循环打印出数据库中每个类别或活动的名称。我正在使用 Bootstrap 样式表,它有一个“折叠”类,我打算用它来实现类别。

然而,为了使用“collapse”类,它需要一个面板的“href”,它将切换为显示/隐藏。当尝试使用“每个”循环时,结果是类别名称将被打印出来,“折叠”作为数据切换,但每个类别将引用相同的面板。这意味着我无法列出属于每个类别的活动,因为它们每个都只会切换显示/隐藏单个共享面板。

如果我使用不正确的措辞来描述我遇到的问题,我深表歉意,但这里有一些 pictures to show what I mean

如果我在“每个”循环中有两个不同的面板并创建两个“折叠”数据切换实例以将它们链接到相应的面板,则可以轻松解决图片中的问题。但是,这是一个临时修复,因为当允许用户创建多个类别时,我需要为每个类别创建单独的面板以供参考。

基本上,我需要能够为属于公共类别的每组活动创建单独的面板,然后将每个面板链接到相应的活动。由于我对 HTML 和 Rails 的了解有限,我想不出一个解决方案或如何解决这个问题。任何帮助或建议将不胜感激,谢谢

类别显示代码:

<body>
<div class="panel-body">
  <h2 align = "center">Categories</h2>
</div>
<% @categories.each do |cat| %>
    <div class="panel-group">
      <div class="panel-group">
        <div class="panel text-center">
          <div class="panel-heading">
            <h4 class="panel-title">
              <a data-toggle="collapse" href="#collapse1">
                <%= cat.c_name %>
              </a>
            </h4>
          </div>
          <div id="collapse1" class="panel-collapse collapse">
          <ul class="list-group">
            <li class="list-group-item">Activity One</li>
            <li class="list-group-item">Activity Two</li>
            <li class="list-group-item">Activity Three</li>
          </ul>
          <div class="panel-footer">Activities</div>
        </div>
        </div>
      </div>
    </div>
<% end %>
</body>

【问题讨论】:

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


    【解决方案1】:

    您可以使用在 HTML 中使用 id 时应该使用的唯一 id。

    <a data-toggle="collapse" href="#collapse1">
    

    这一行的问题在于它是硬编码的,它必须是动态的:

    <a data-toggle="collapse" href="#collapse<%= cat.id%>">
    

    这样,每个切换 href 都有一个基于对象的 id 列的唯一 id。

    您还必须更改此行:

    <div id="collapse1" class="panel-collapse collapse">
    

    同样的:

    <div id="collapse<%= cat.id %>" class="panel-collapse collapse">
    

    【讨论】:

    • 我不知道你能做到这一点。感谢您的帮助!
    猜你喜欢
    • 2020-10-18
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多