- Create new TicketsController with actions for name collection, creation, and checkout - Add dedicated ticket views (new.html.erb, checkout.html.erb, show.html.erb) - Update ticket_selection_controller.js to handle form submission via AJAX - Add store_cart endpoint in EventsController for session-based cart management - Update routes to support new ticket flow: /tickets/new, /create, /checkout - Fix attribute name consistency across views (title→name, starts_at→start_time) - Add Stripe checkout integration with proper error handling - Remove deprecated collect_names flow in favor of streamlined approach The flow is now: Event selection → AJAX cart storage → Name collection → Checkout → Payment
17 lines
502 B
Ruby
17 lines
502 B
Ruby
module StripeHelper
|
|
# Safely call Stripe methods with error handling
|
|
def safe_stripe_call(&block)
|
|
# Check if Stripe is properly configured
|
|
return nil unless Rails.application.config.stripe[:secret_key].present?
|
|
|
|
# Stripe is now initialized at application startup
|
|
Rails.logger.debug "Using globally initialized Stripe"
|
|
|
|
begin
|
|
yield if block_given?
|
|
rescue Stripe::StripeError => e
|
|
Rails.logger.error "Stripe Error: #{e.message}"
|
|
nil
|
|
end
|
|
end
|
|
end |