【问题标题】:dynamic bootstrap tabs with rails带导轨的动态引导选项卡
【发布时间】:2015-04-20 09:57:31
【问题描述】:

我正在尝试让 rails 生成动态导航选项卡,以引用用户注册的组。基本上,我想要实现的是动态地拥有以用户注册的组命名的选项卡(工作正常),然后通过单击其选项卡显示每个组的内容(由于某种原因无法正常工作)。页面正确加载数据,但无法在选项卡之间切换

这是视图中的代码

<div class="tabbable tabs-left">
  <div class="row">
    <div class="col-md-4">
      <ul class="nav nav-pills nav-stacked">
        <% current_user.group.each do |group| %>
            <li><a href="#<%= group.name %>" data-toggle="tab">
            <%=group.name %></a></li>
        <% end %>
      </ul>
    </div>
    <div class="col-md-8">
      <div class="tab-content">
        <% current_user.group.each do |group| %>
            <div class="tab-pane fade <%= 'in active' if current_user.group.first == group %>" id="<%=group.name%>">
              <% if current_user.group_feed(group.id).any? %>
                  <ol class="microposts">
                    <%= render current_user.group_feed(group.id) %>
                    <%= group.name %>
                  </ol>
              <% end %>
            </div>
        <% end %>
      </div>
    </div>
  </div>
</div>

有什么我遗漏的吗?

【问题讨论】:

  • 你是否包含了 bootstrap js 文件?
  • group.name 是否产生有效的 html id 属性?
  • 事实证明,只要选项卡 ID 是一个单词,它就可以完美运行,这对我来说似乎有点奇怪。我想它应该使用 group.id 作为标签 ID 而不是 group.name
  • 我认为有效的 html id 属性不应超过一个单词,对吗?
  • 假设group.id是一个整数,它是一个无效的html id。

标签: ruby-on-rails twitter-bootstrap dynamic tabs


【解决方案1】:

问题是group.name 产生了无效的 html id 属性。

html id 不应以数字开头(其他任何地方的数字都可以),并且没有空格。示例:

无效:

1foo aaa b

有效:

foo1 aaa-b

group.name.parameterize 将删除所有奇数字符(@£$ 等)并用"-" 替换空格,所以使用它。

您还希望使其独一无二,因为具有以下名称的事物:"foo""foo!"parameterize 与同一事物:"foo"

我会选择:

id="&lt;%=(group.name.gsub(/[0-9]+/, "")+group.id.to_s).parameterize%&gt;"

此代码从名称中删除任何数字(它仅适用于 id 的开头),然后在末尾添加 id 使其唯一。

【讨论】:

  • 非常感谢。我希望我可以投票给答案,直到我没有足够的声望点来投票。
猜你喜欢
  • 2016-10-22
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
相关资源
最近更新 更多