#flashメソッド
ユーザーの登録成功や失敗をメッセージ形式で知らせてくれるメソッド。
##実行例
controllers/users_controller.rb
def create
@user = User.new(user_params)
if @user.save
flash[:success] = "Welcome to the Sample App!"
redirect_to @user
else
render 'new'
end
end
上記ではユーザーの登録に成功した時に、flash[:success] = "Welcome to the Sample App!"
が実行され成功メッセージが表示されるようになっています。
しかしビューの方でも設定を行わないと表示されるようにはなりません。
app/views/layouts/application.html.erb
<省略>
<body>
<%= render 'layouts/header' %>
<div class="container">
<% flash.each do |message_type, message| %>
<div class="alert alert-<%= message_type %>"><%= message %></div>
<% end %>
<%= yield %>
<%= render 'layouts/footer' %>
<%= debug(params) if Rails.env.development? %>
</div>
<省略>
<% flash.each do |message_type, message| %>
でflashの数だけメッセージが表示されるようになっております。
bootstrapを使用していると<div class="alert alert-<%= message_type %>">
でメッセージの表示を変更されることができます。
bootstrapには上記の性質があり、今回のコードで登録に成功するとflash[:success]
が実行され <div class="alert alert-<%= message_type %>">
の<%= message_type %>
がsuccess
に変わり緑色のメッセージが表示されます。