1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】flashメソッド

Posted at

#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 %>">でメッセージの表示を変更されることができます。
image.png
bootstrapには上記の性質があり、今回のコードで登録に成功するとflash[:success]が実行され <div class="alert alert-<%= message_type %>"><%= message_type %>successに変わり緑色のメッセージが表示されます。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?