On this page
class ActionDispatch::Flash::FlashHash
Public Instance Methods
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 159
def [](k)
@flashes[k.to_s]
end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 153
def []=(k, v)
k = k.to_s
@discard.delete k
@flashes[k] = v
end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 260
def alert
self[:alert]
end
Convenience accessor for flash[:alert]
.
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 265
def alert=(message)
self[:alert] = message
end
Convenience accessor for flash[:alert]=
.
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 192
def clear
@discard.clear
@flashes.clear
end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 177
def delete(key)
key = key.to_s
@discard.delete key
@flashes.delete key
self
end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 245
def discard(k = nil)
k = k.to_s if k
@discard.merge Array(k || keys)
k ? self[k] : self
end
Marks the entire flash or a single flash entry to be discarded by the end of the current action:
flash.discard # discard the entire flash at the end of the current action
flash.discard(:warning) # discard only the "warning" entry at the end of the current action
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 197
def each(&block)
@flashes.each(&block)
end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 188
def empty?
@flashes.empty?
end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 145
def initialize_copy(other)
if other.now_is_loaded?
@now = other.now.dup
@now.flash = self
end
super
end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 235
def keep(k = nil)
k = k.to_s if k
@discard.subtract Array(k || keys)
k ? self[k] : self
end
Keeps either the entire current flash or a specific flash entry available for the next action:
flash.keep # keeps the entire flash
flash.keep(:notice) # keeps only the "notice" entry, the rest of the flash is discarded
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 173
def key?(name)
@flashes.key? name.to_s
end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 169
def keys
@flashes.keys
end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 270
def notice
self[:notice]
end
Convenience accessor for flash[:notice]
.
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 275
def notice=(message)
self[:notice] = message
end
Convenience accessor for flash[:notice]=
.
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 227
def now
@now ||= FlashNow.new(self)
end
Sets a flash that will not be available to the next action, only to the current.
flash.now[:message] = "Hello current action"
This method enables you to use the flash as a central messaging system in your app. When you need to pass an object to the next action, you use the standard flash assign ([]=
). When you need to pass an object to the current action, you use now
, and your object will vanish when the current action is done.
Entries set via now
are accessed the same way as standard entries: flash['my-key']
.
Also, brings two convenience accessors:
flash.now.alert = "Beware now!"
# Equivalent to flash.now[:alert] = "Beware now!"
flash.now.notice = "Good luck now!"
# Equivalent to flash.now[:notice] = "Good luck now!"
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 184
def to_hash
@flashes.dup
end
Protected Instance Methods
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 280
def now_is_loaded?
@now
end
Private Instance Methods
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 285
def stringify_array(array) # :doc:
array.map do |item|
item.kind_of?(Symbol) ? item.to_s : item
end
end
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.