Rails 5: добавьте цикл для создания метода и увеличивайте на 1 каждый раз - PullRequest
0 голосов
/ 09 февраля 2019

Я хочу добавить 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

1 Ответ

0 голосов
/ 10 февраля 2019

в вашей модели вы можете сделать что-то вроде

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...