class ActionDispatch::Flash::FlashHash
Открытые методы экземпляра
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 169 def [](k) @flashes[k.to_s] end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 163 def []=(k, v) k = k.to_s @discard.delete k @flashes[k] = v end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 280 def alert self[:alert] end
Удобный метод доступа к flash[:alert].
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 285 def alert=(message) self[:alert] = message end
Удобный метод доступа к flash[:alert]=.
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 204 def clear @discard.clear @flashes.clear end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 189 def delete(key) key = key.to_s @discard.delete key @flashes.delete key self end
Немедленно удаляет одну запись из флеш-сообщений. Используйте этот метод, если хотите удалить сообщение в текущем действии. См. также discard.
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 264 def discard(k = nil) k = k.to_s if k @discard.merge Array(k || keys) k ? self[k] : self end
Помечает все флеш-сообщения или отдельную запись для удаления по завершении текущего действия:
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
Используйте этот метод, если хотите отобразить сообщение в текущем действии, но не в следующем. См. также delete.
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 209 def each(&block) @flashes.each(&block) end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 200 def empty? @flashes.empty? end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 155
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 250 def keep(k = nil) k = k.to_s if k @discard.subtract Array(k || keys) k ? self[k] : self end
Сохраняет все текущие флеш-сообщения или определённую запись доступными для следующего действия:
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 183 def key?(name) @flashes.key? name.to_s end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 179 def keys @flashes.keys end
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 290 def notice self[:notice] end
Удобный метод доступа к flash[:notice].
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 295 def notice=(message) self[:notice] = message end
Удобный метод доступа к flash[:notice]=.
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 241 def now @now ||= FlashNow.new(self) end
Добавляет флеш-сообщение, доступное только в текущем действии, но не в следующем.
flash.now[:message] = "Hello current action"
Этот метод позволяет использовать флеш-сообщения как централизованную систему обмена сообщениями в приложении. Если нужно передать объект в следующее действие, используйте стандартное присваивание во флеш-сообщениях ([]=). Если нужно передать объект в текущее действие, используйте now, и объект будет удалён после завершения текущего действия.
Записи, добавленные с помощью now, доступны так же, как и стандартные записи: flash['my-key'].
Кроме того, предоставляет два удобных метода доступа:
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 196 def to_hash @flashes.dup end
Защищённые методы экземпляра
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 300 def now_is_loaded? @now end
Приватные методы экземпляра
# File actionpack/lib/action_dispatch/middleware/flash.rb, line 305
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.