Sha256: c3e137a1bf2a2263ec44c64f1c59cb1aee8095f5b608d3c2e329a9df333ac3ab

Contents?: true

Size: 981 Bytes

Versions: 10

Compression:

Stored size: 981 Bytes

Contents

class ProductsController < Spree::BaseController
  HTTP_REFERER_REGEXP = /^https?:\/\/[^\/]+\/t\/([a-z0-9\-\/]+)$/
  rescue_from ActiveRecord::RecordNotFound, :with => :render_404
  helper :taxons

  respond_to :html

  def index
    @searcher = Spree::Config.searcher_class.new(params)
    @products = @searcher.retrieve_products
    respond_with(@products)
  end

  def show
    @product = Product.find_by_permalink!(params[:id])
    return unless @product

    @variants = Variant.active.includes([:option_values, :images]).where(:product_id => @product.id)
    @product_properties = ProductProperty.includes(:property).where(:product_id => @product.id)
    @selected_variant = @variants.detect { |v| v.available? }

    referer = request.env['HTTP_REFERER']

    if referer && referer.match(HTTP_REFERER_REGEXP)
      @taxon = Taxon.find_by_permalink($1)
    end

    respond_with(@product)
  end

  private

  def accurate_title
    @product ? @product.name : super
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
spree_core-0.70.7 app/controllers/products_controller.rb
spree_core-0.70.6 app/controllers/products_controller.rb
spree_core-0.70.5 app/controllers/products_controller.rb
spree_core-0.70.4 app/controllers/products_controller.rb
spree_core-0.70.3 app/controllers/products_controller.rb
spree_core-0.70.2 app/controllers/products_controller.rb
spree_core-0.70.1 app/controllers/products_controller.rb
spree_core-0.70.0 app/controllers/products_controller.rb
spree_core-0.70.0.rc2 app/controllers/products_controller.rb
spree_core-0.70.RC1 app/controllers/products_controller.rb