app/components/admin/allowed_table_actions_component.rb
class Admin::AllowedTableActionsComponent < ApplicationComponent
attr_reader :record, :options
use_helpers :can?
delegate :action, to: :table_actions_component
def initialize(record, **options)
@record = record
@options = options
end
private
def actions
(options[:actions] || [:edit, :destroy]).select { |action| can?(action, record) }
end
def table_actions_component
@table_actions_component ||= Admin::TableActionsComponent.new(record, **options.merge(actions: actions))
end
end