选择 Rails 中的第一条即显消息

Selecting the first flash message in Rails

我只想抓取第一条闪信。我必须将此消息发送给一个对象。到目前为止我有

flash.first.last if flash.present? and flash.first.present?

在某些情况下,flash 根本不存在,因此我必须首先检查它是否存在,然后查看它是否有消息。老实说,我不喜欢它。 FlashHash 或 Rails 是否有一种开箱即用的方法?有没有更清洁的方法来做到这一点?谢谢

如果您正在寻找缩短它的方法,可以使用安全导航:

flash.try(:first).try(:last) # Ruby < 2.3
flash&.first&.last           # Ruby >= 2.3

有关闪存哈希方法的列表,请参阅 ActionDispatch::Flash::FlashHash 文档。