Bootstrap Carousel不作为Rails应用程序的一部分移动

时间:2017-09-07 19:54:59

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

我想在我的Rails应用程序中使用Bootstrap轮播。 JQuery,Bootstrap和JS全部加载,并设置了一个工作数据库。所以我想知道我的代码中是否存在旋转木马的错误。显示第一个图像但它没有改变,单击箭头不会使其移动到下一个。



<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
  <!-- Indicators -->
  <ol class="carousel-indicators">
    <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
    <li data-target="#carousel-example-generic" data-slide-to="1"></li>
    <li data-target="#carousel-example-generic" data-slide-to="2"></li>
  </ol>

  <!-- Wrapper for slides -->
  <div class="carousel-inner" role="listbox">
    <% @products.each do |product| %>
	    <div class="item<%= " active" if product == @products.first %>">
	      <%= image_tag(product.image_url) %>
	      <div class="carousel-caption">
	        <%= product.name %>
	      </div>
	    </div>
	  <% end %>
	  ...
  </div>

  <!-- Controls -->
  <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
    <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
    <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

没有什么是必然的错误,但我之前使用过的方法有点像这样:

<% @products.each_with_index do |product, index| %>
    <div class="item <%= 'active' if index == 0 %>">
      <%= image_tag(product.image_url) %>
      <div class="carousel-caption">
        <%= product.name %>
      </div>
    </div>
<% end %>

另外,您是否仔细检查过您是否加载了Bootstrap JS文件?

编辑:基于JS仍无法正常运行的事实,我预计资产管道可能会正确加载JS资产。虽然您可以通过CDN包含引导程序,但我建议您将gem 'bootstrap-sass'添加到您的gem文件和bundle install。这将通过Gem添加引导程序(它更多的是Rails方法)然后你将进入你的application.js文件并更新加载顺序看起来像这样(假设你有jquery_ujs ):

//= require jquery
//= require bootstrap
//= require jquery_ujs
//= require turbolinks
//= require_tree .

答案 1 :(得分:0)

好的,只是为了确保这是我加载bootstrap的地方,到目前为止它没有引起任何问题,但到目前为止我只用它做导航栏。

&#13;
&#13;
<head>
    <title>Rails1</title>
    <%= csrf_meta_tags %>

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>

    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
    <script scr="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js">
    </script>
    <meta name="viewport" content="width=device-width, initial-scale=1">

  
  </head>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

你的JS没有加载为什么它不能正常工作

确保在application.js中包含bootstrap js或者只是将其包含在布局中

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>