如何在rails环路上的ruby中有效地实现bootstrap切换数据?

时间:2016-09-29 16:39:06

标签: ruby-on-rails twitter-bootstrap

大家好我在这里遇到了一些挑战。我在我的应用程序index.html.erb页面上使用了数据切换崩溃循环。现在它仅适用于循环的第一个实例。这意味着每次我点击它,它就会打开和关闭。但是如果我点击其他的只是顶部的同一个第一个受影响(工作)其他的不起作用。这是下面的代码:万一你想看看我的模型How do I solve this Devise authentication challenge?

  <% @sub_color.each do |c| %><% unless sub_color.color.nil? %>
    <table class="table">
      <thead >
        <tr >
          <th >Names</h2></th >
          <th >Names 2</th >
          <th >Names 3</th >
        </tr >
      </thead >
      <tbody >
        <tr >
          <td >             
            <a href="#demo"data-toggle="collapse"><%= c.color.title%></a>
            <div id="demo" class="collapse">
              <%=c.title %>
            </div>
          </td >

2 个答案:

答案 0 :(得分:0)

我想你可以很容易地做到这一点......如果@sub_color有id ..

<td >             
   <a href="#demo_<%= c.id %>" data-toggle="collapse"><%= c.color.title%></a>
   <div id="demo_<%= c.id %>" class="collapse">
      <%=c.title %>
   </div>
</td >

答案 1 :(得分:0)

我猜你的问题是你所有可折叠的div都有相同的id。您可能需要执行以下操作:

  <%= link_to c.color.title, "#demo-#{c.color.id}", data: {toggle: "collapse"} %>
  <%= content_tag :div, c.title, class: "collapse", id: "demo-#{c.color.id}" %>

我很长时间没有使用过erb(我使用的是HAML),所以语法可能有些偏差。

这一位:

  <%= link_to c.color.title, "#demo-#{c.color.id}", data: {toggle: "collapse"} %>

应该给你类似的东西(假设c.color.id为1而c.color.title为红色):

  <a href="#demo-1" data-toggle="collapse">Red</a>

这一点:

  <%= content_tag :div, c.title, class: "collapse", id: "demo-#{c.color.id}" %>

应该给你类似的东西(假设c.title是蓝色):

  <div id="demo-1" class="collapse">Blue</div>

或类似的东西。