###flashメッセージとは
何らかのアクションがあった時に一時的に表示させるメッセージのことです。
ログインや投稿の際に使用します。
#コントローラー
flash(:キー名) = 'メッセージ内容'
#ビュー
flash(:キー名)
###flashとflash.now
flash=次のアクションまでデータを保持する。redirect_toと一緒に使う。
flash.now=次のアクションに移行した時点でデータが消える。renderと一緒に使う。
redirect_to=処理を強制的に指定の場所にとばす。
render=アクションの実行はせずに指定の場所を表示する。
#例 コントローラー
def create
@task = Task.new(task_params)
if @task.save
flash[:success] = '正常に送信されました'
redirect_to @task
else
flash.now[:danger] = '送信されませんでした'
render :new
end
end
#例 ビュー
<% flash.each do |message_type, message| %>
<div><%= message %></div>
<%= end %>
#@task.save が成功すると、message_typeに[:success]、messageに'正常に送信されました'が代入される。
flashはハッシュなので、eachで取り出すと|kye, value|で取り出されます。