2016-11-08 22 views
0

最初のフラッシュメッセージを取得したいだけです。このメッセージをオブジェクトに送信する必要があります。これまでのところ私はRailsで最初のフラッシュメッセージを選択

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

あなたは正しいです。私は何かもっと期待していました。 C'est la vie。 – jason328

関連する問題