Module: ActiveAdmin::Extensions::Controller::RedirectAfterActionTo::ClassMethods

Defined in:
lib/active_admin/extensions/controller/redirect_after_action_to.rb

Instance Method Summary collapse

Instance Method Details

#redirect_after_actionObject



46
47
48
# File 'lib/active_admin/extensions/controller/redirect_after_action_to.rb', line 46

def redirect_after_action
  @redirect_after_action ||= {}
end

#redirect_after_action_to(actions:, path:, keep_flash: true) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/active_admin/extensions/controller/redirect_after_action_to.rb', line 50

def redirect_after_action_to(actions:, path:, keep_flash: true)
  unless actions.respond_to? :each
    actions = [actions]
  end

  actions.each do |action|
    parsed_action = if action.try(:lambda?)
      action.call.to_sym
    else
      action.to_sym
    end

    redirect_after_action[parsed_action] = {
      path: path,
      keep_flash: keep_flash
    }
  end
end

#redirect_after_action_to_member_url(actions:, url_helper:, keep_flash: true) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/active_admin/extensions/controller/redirect_after_action_to.rb', line 69

def redirect_after_action_to_member_url(
  actions:,
  url_helper:,
  keep_flash: true
)
  redirect_after_action_to(
    actions: actions,
    path: ->(controller) {
      controller.send(url_helper, controller.send(:resource))
    },
    keep_flash: keep_flash
  )
end