J'utilise ce code pour afficher des images aléatoires pour des produits similaires dans la même catégorie le produit sélectionné est.Images au hasard dans Ruby on Rails 4 App
<div class="row container product-teaser">
<h4 class="text-center teaser-text"> similar products to <%= @product.title %> : </h4>
<% @products_rand.each do |product| %>
<div class="col-sm-2 col-xs-3 center-block product-thumbs-product-view" >
<%= link_to product_path (product) do %>
<% if product.images.first %>
<%= image_tag @product.images.first.image.url(:medium), :size => "100%x100%", class: "img-responsive center-block" %>
<% end %>
<% end %>
<h5 class="text-center"><%= link_to product.title, product, class: "text-center" %></h5>
</div>
<% end %>
</div>
Le problème est que les produits de cette loop
sont tous affichant l'image pour le produit sélectionné, mais les noms et le lien pour les produits sont corrects. Cette photo montre ce que je veux dire, le client a sélectionné un produit appelé ATLAS et des produits similaires (produits de la même category
) s'affichent avec l'image Atlas.
est ici le product_controller.rb
class ProductsController < ApplicationController
before_action :set_product, only: [:show, :edit, :update, :destroy]
def show
offset = rand(100)
@meta_title = "Concept Store #{@product.title}"
@meta_description = @product.description
@products_rand = Product.where(category_id: @product.category_id).order("RANDOM()").limit(6)
end
private
# Use callbacks to share common setup or constraints between actions.
def set_product
@product = Product.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def product_params
params.require(:product).permit(:title, :description, :price, :image, :category_id, :stock_quantity, :label_id, :query, :slug, images_attributes: [:image , :id , :_destroy])
end
end