ruby-on-rails - 如何在显示页面中实现轮播或几张照片(Ruby on Rails)
问题描述
我有一个显示我所有产品的索引页(首先是标题,然后是一张照片,然后是一些文字)。当点击其中一个产品时,用户会进入我的展示页面,显示更多的文字、一张地图和一张以前的照片。现在我想添加更多照片或旋转木马,但不知道该怎么做。可能首先我必须在模式中添加一些 t.strings - 但我可以为轮播做这件事吗?然后我将在哪里将轮播代码 - 放入显示页面?或者,如果我要在一张照片中再添加 10 张照片,我是否必须在架构中为每张照片添加一个 t.string?我已经尝试通过编辑它不起作用的页面来插入多张照片。或者我能以某种方式在模式中有一种 t.array 吗?这是我的代码:
INDEX.html.erb
<div class="main-content">
<div class="row" id="uebersicht">
<p id="notice"><%= notice %></p>
<!--% cache product do %-->
<% @products.each do |product| %>
<div class="Spaltendefinition">
<div class="col-xs-12 col-md-6 col-lg-4">
<div class="gehoertzusammen">
<div class="name">
<h3> <%= product.name %> </h3>
</div>#
<div class="foto">
<%= image_tag(product.image_url, class: 'img-responsive picturebox') %>
</div>
<!-- generates the HTML tag: -->
<!--a href="/products/3>Show Product</a-->
<div class="descriptionbox">
<p><%= product.description %></p>
</div>
<p> Highlights: <%= product.highlights %> </p>
</div>
<p> <%= link_to 'Einzelheiten', product, class: 'btn btn-default' %> | <%= link_to 'Bearbeiten', edit_product_path(product), class: 'btn btn-default' %></p>
<br>
</div>
<br>
<% end %>
<div class="neuesprodukt">
<%= link_to 'Neues Produkt', new_product_path, class: 'btn btn-default' %>
</div>
</div> <!-- /col -->
</div>
</div>
SHOW.html.erb
<div class="Einzelreiseseite">
<div class="row">
<p id="notice"><%= notice %></p>
<div class="col-sm-6 col-md-4">
<p>
<strong> <%= @product.name %> </strong>
</p>
<p>
<strong>Kurzbeschreibung:</strong>
<%= @product.description %>
</p>
<p>
<strong>Highlights:</strong>
<%= @product.highlights %>
</p>
<p>
<strong>Details:</strong>
<%= @product.details %>
</p>
</div>
<p> <%= image_tag( @product.map_url, class: "img-responsive map") %> </p>
<p><%= image_tag( @product.image_url, class: "img-responsive img-zoom1", data_zoom_image: "@product.image_url") %> </p>
<!--img src="../assets/afrika2.jpg"> <img src="../assets/afrika1.jpg"-->
<%= link_to 'Bearbeiten', edit_product_path(@product), class: "btn btn-default" %> |
<%= link_to 'Zurück', products_path, class: "btn btn-default" %>
</div>
</div>
SCHEMA
ActiveRecord::Schema.define(version: 20180309123443) do
create_table "products", force: :cascade do |t|
t.string "name"
t.string "image_url"
t.text "description"
t.text "highlights"
t.text "details"
t.string "map_url"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
您需要更多详细信息吗?提前致谢!尤塔
解决方案
有一个很棒的宝石叫做 slick 用于实现带有导轨的旋转木马。这就是你所要做的:
宝石文件
gem 'jquery-slick-rails'
应用程序.js
//= require jquery.slick
看法
<section class="slider-wrapper">
<div class="container slider">
<% Product.each do |slide| %>
<!-- content -->
</div>
<% end %>
</div>
</section>
<script type="text/javascript">
$(".container").slick({
dots: true,
accessibility: true,
autoplay: true,
autoplaySpeed: 5000,
arrows: true,
infinite: true,
slidesToShow: 1,
slidesToScroll: 1
});
</script>
jquery 中有很多可能的配置,这只是一个例子。
推荐阅读
- opencv - 对象分割不适用于黑色对象
- properties - 如何在sonarqube中扫描java属性文件
- xml - Hive XML Serde:加载 xml 内容时解析错误
- javascript - 确保游戏循环的 React 状态已更新
- can-bus - 如何在 canalyzer 中播放或打开 .blf 文件?
- java - 我的 NavigationView 不会显示在 Android Studio 的 DrawerLayout 中
- telerik - Telerik 的 Rad Grid 编辑模式切换
- java - org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“controllery”的bean时出错
- python - 索引空数组,Numba 与 Numpy
- javascript - 将 aria 用于可扩展项目