2016-11-08 42 views
0

我只想抓取第一個Flash消息。我必須將此消息發送給對象。到目前爲止,我有在Rails中選擇第一個Flash消息

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

在某些情況下,閃光燈不存在一樣,所以我必須首先檢查它的存在,然後看看它是否有消息。我真的不喜歡它。 FlashHash或Rails是否有一種可以立即執行此行爲的方法?有沒有更乾淨的方法來做到這一點?謝謝。

回答

1

如果你正在尋找一種方式,以縮短它,你可以使用安全導航:

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

對於閃存哈希方法列表,請參閱ActionDispatch::Flash::FlashHash文檔。

+0

我不知道如何使用'try'方法。它超出了我的想法。我會再考慮一下。謝謝。 – jason328

+0

@ jason328我真的不明白你的預期行爲是什麼。文檔在那裏,它肯定沒有''.first.last'功能開箱即用:) –

+0

不,你是對的。我只是希望有更多的東西。這就是生活。 – jason328