Module: ActionController::Flash::ClassMethods

Defined in:
lib/action_controller/metal/flash.rb

Instance Method Summary collapse

Instance Method Details

#action_methodsObject

:nodoc:



47
48
49
# File 'lib/action_controller/metal/flash.rb', line 47

def action_methods # :nodoc:
  @action_methods ||= super - _flash_types.map(&:to_s).to_set
end

#add_flash_types(*types) ⇒ Object

Creates new flash types. You can pass as many types as you want to create flash types other than the default ‘alert` and `notice` in your controllers and views. For instance:

# in application_controller.rb
class ApplicationController < ActionController::Base
  add_flash_types :warning
end

# in your controller
redirect_to user_path(@user), warning: "Incomplete profile"

# in your view
<%= warning %>

This method will automatically define a new method for each of the given names, and it will be available in your views.



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/action_controller/metal/flash.rb', line 34

def add_flash_types(*types)
  types.each do |type|
    next if _flash_types.include?(type)

    define_method(type) do
      request.flash[type]
    end
    helper_method(type) if respond_to?(:helper_method)

    self._flash_types += [type]
  end
end