我想在我的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;
答案 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的地方,到目前为止它没有引起任何问题,但到目前为止我只用它做导航栏。
<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;
答案 2 :(得分:0)
你的JS没有加载为什么它不能正常工作
确保在application.js中包含bootstrap js或者只是将其包含在布局中
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>