轨道 5:添加循环以创建方法,每次递增 1



我想在我的预订中添加一个order_number。现在每次创建订单时,我都想更改order_number的值。

我尝试了@reservation.order_number = 1000然后@reservation.order_number += 1,但我很快意识到这没有任何意义。

这是我从预订控制器创建的方法是:

def create
    service = Service.find(params[:service_id])
    if current_user.admin?
      flash[:alert] = "Du kannst nicht dein eigenes Angebot kaufen"
    elsif current_user.stripe_id.blank?
      flash[:alert] = "Füge eine Zahlungsmehtode hinzu"
      return redirect_to payment_method_path
    else
      @reservation = current_user.reservations.build
      @reservation.service = service
      @reservation.price = service.price
      @reservation.order_number = 1000
      if @reservation.Bearbeitung!
        flash[:notice] = "Ihre Anfrage wurde erfolgreich versendet"
        ReservationMailer.confirm_email_to_guest(@reservation.user, service).deliver
        confirm_sms(service, @reservation)
      else
        charge(service, @reservation)
      end
    end
    redirect_to submit_reservation_path(@reservation)
  end
在你的

模型中,你可以做这样的事情,

before_save :add_order_number
private 
  def add_order_number
    default_order_number = 1000
    previous_order = Order.last
      if previous_order
        puts "last order_number was #{previous_order.order_number}"
        self.order_number = previous_order.order_number + 1
      else
        puts  "there was no last number, setting order number to default_order_number"
        self.order_number = default_order_number
      end
  end

最新更新