module ActiveScaffold::Bridges::ActiveStorage::ActiveStorageBridge

Public Class Methods

new(model_id) click to toggle source
Calls superclass method
# File lib/active_scaffold/bridges/active_storage/active_storage_bridge.rb, line 5
def initialize(model_id)
  super
  return unless ActiveScaffold::Bridges::ActiveStorage::ActiveStorageBridgeHelpers.klass_has_active_storage_fields?(model)

  model.send :extend, ActiveScaffold::Bridges::ActiveStorage::ActiveStorageBridgeHelpers

  # include the "delete" helpers for use with active scaffold, unless they are already included
  model.generate_delete_helpers

  update.multipart = true
  create.multipart = true

  model.active_storage_has_one_fields.each { |field| configure_active_storage_field(field.to_sym, :has_one) }
  model.active_storage_has_many_fields.each { |field| configure_active_storage_field(field.to_sym, :has_many) }
end

Private Instance Methods

configure_active_storage_field(field, field_type) click to toggle source
# File lib/active_scaffold/bridges/active_storage/active_storage_bridge.rb, line 23
def configure_active_storage_field(field, field_type)
  columns << field
  columns.exclude "#{field}_attachment#{'s' if field_type == :has_many}".to_sym
  columns.exclude "#{field}_blob#{'s' if field_type == :has_many}".to_sym
  columns[field].includes ||= ["#{field}_attachment#{'s' if field_type == :has_many}".to_sym, "#{field}_blob#{'s' if field_type == :has_many}".to_sym]
  columns[field].form_ui ||= "active_storage_#{field_type}".to_sym
  columns[field].params.add "delete_#{field}"
end