Class: Spree::ProductReviewsController
- Inherits:
-
StoreController
- Object
- StoreController
- Spree::ProductReviewsController
- Defined in:
- app/controllers/spree/product_reviews_controller.rb
Instance Method Summary collapse
Instance Method Details
#create ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'app/controllers/spree/product_reviews_controller.rb', line 12 def create @product_review = Spree::ProductReview.new(product_review_params) @product_review.product = @product @product_review.purchase_date = spree_current_user.recent_purchase_date_for @product @product_review.user = spree_current_user @product_review.ip_address = request.remote_ip @product_review.locale = I18n.locale.to_s @product_review.product_name = @product.name :create, @product_review if Spree::ProductReview.exists?(user_id: spree_current_user.id, product_id: @product.id) flash[:error] = "You have already reviewed this product." redirect_to spree.product_path(@product) and return end if @product_review.save flash[:success] = Spree.t("product_review.flash_messages.create.success") redirect_to spree.product_path(@product) else flash[:error] = Spree.t("product_review.flash_messages.create.failure") render :new end end |
#destroy ⇒ Object
41 42 43 44 45 46 47 |
# File 'app/controllers/spree/product_reviews_controller.rb', line 41 def destroy @product_review = Spree::ProductReview.find(params[:id]) @product_review.destroy # Force CanCanCan to reload abilities for the current user session[:_csrf_token] = nil redirect_to spree.product_path(@product), notice: Spree.t(:review_deleted) end |
#index ⇒ Object
37 38 39 |
# File 'app/controllers/spree/product_reviews_controller.rb', line 37 def index @product_reviews = @product.product_reviews.approved.order(created_at: :desc) end |
#new ⇒ Object
7 8 9 10 |
# File 'app/controllers/spree/product_reviews_controller.rb', line 7 def new @product_review = Spree::ProductReview.new(product: @product) :create, @product_review end |