Feature buying
{{ resolvedDiscussionCount }}/{{ discussionCount }} {{ resolvedCountText }} resolved
-
app/controllers/orders_controller.rb 0 → 100644
1 class OrdersController < ApplicationController 2 before_action :set_order, only: [:show, :edit, :update, :destroy] 3 4 def index 5 @orders = Order.newest.page(params[:page]) 6 end 7 8 def show 9 end 10 11 def new 12 if current_cart.line_items.empty? 13 redirect_to root_path -
app/models/line_item.rb 0 → 100644
-
app/models/line_item.rb 0 → 100644
1 class LineItem < ActiveRecord::Base 2 belongs_to :order 3 belongs_to :product 4 5 validate :check_product_stock 6 after_save :trigger_recalculate 7 before_destroy :trigger_calculate_order 8 9 def trigger_recalculate -
app/models/order.rb 0 → 100644
1 class Order < ActiveRecord::Base 2 enum state: [:card, :checkout] 3 4 has_many :line_items, dependent: :destroy 5 belongs_to :user 6 7 accepts_nested_attributes_for :line_items 8 9 def recalculate 10 count = line_items.sum(:quantity) 11 total_price = 0 12 line_items.each do |item| -
Master
@dieutb Trong ruby có hàm tính tổng là reduce. Dùng hàm này sẽ giảm được 1 biến tạm thời total_price
http://ruby-doc.org/core-2.1.0/Enumerable.html#method-i-reduce
-
-
app/models/order.rb 0 → 100644
1 class Order < ActiveRecord::Base 2 enum state: [:card, :checkout] 3 4 has_many :line_items, dependent: :destroy 5 belongs_to :user 6 7 accepts_nested_attributes_for :line_items 8 9 def recalculate 10 count = line_items.sum(:quantity) 11 total_price = 0 12 line_items.each do |item| 13 total_price += item.quantity*item.price 14 end 15 self.update_columns(item_count: count, item_total: total_price) -
6 6 # default 'public/images/product_default.jpg' 7 7 end 8 8 9 paginates_per 5 10 9 11 validates :pid, :title, :price, :category_id, :image, :stock, :release_date, :public_date, presence: true 10 12 validates :pid, uniqueness: true 11 13 12 scope :recommend, -> {where(recommend: true)} 14 scope :recommend, -> { where(recommend: true) } 13 15 14 16 def self.search(params) 15 params[:per_page] ||= 5 16 params[:page] ||= 1 17 Product.order("release_date DESC").page(params[:page]) -
app/services/cart_service.rb 0 → 100644
-
app/models/order.rb 0 → 100644
1 class Order < ActiveRecord::Base 2 enum state: [:card, :checkout] 3 4 has_many :line_items, dependent: :destroy 5 belongs_to :user 6 7 accepts_nested_attributes_for :line_items 8 9 def recalculate 10 count = line_items.sum(:quantity) 11 total_price = 0 12 line_items.each do |item| 13 total_price += item.quantity*item.price 14 end 15 self.update_columns(item_count: count, item_total: total_price) -
Master
Yes. My purpose is skip validate and callback here
-
-
4 4 protect_from_forgery with: :exception 5 5 layout :detect_layout 6 6 7 before_filter :configure_permitted_parameters, if: :devise_controller? 7 before_action :configure_permitted_parameters, if: :devise_controller? 8 9 include OrderHelper -
Reporter
include OrderHelpershould be placed on top class. It's easier to see
-
-
app/controllers/orders_controller.rb 0 → 100644
1 class OrdersController < ApplicationController 2 before_action :authenticate_user! 3 layout "cart" 4 5 def update 6 current_order.update_attributes(update_order_params) 7 redirect_to cart_path(), notice: "Update cart successfully" -
Reporter
Use
cart_pathif it has no agruments
-
-
Status changed to closed
Toggle commit list