Reputation: 129
I want to add an order_number
to my reservations. Now everytime an order gets created I want to change the value of the order_number
.
I tried @reservation.order_number = 1000
and then @reservation.order_number += 1
, but I soon realised that this doesn't make any sense.
Here is my create method from my reservations controller:
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
Upvotes: 0
Views: 389
Reputation: 574
in your model you can do something like,
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
Upvotes: 1