본문 바로가기

.Tip

Rails) flash 사용법

flash 는 Rails Application에서의 Action과 Action간에 정보를 공유하기 위해 만들어진 기능이다.

HTTP Protocol은, 기본적으로 상태가 유지되지 않는 프로토콜인데,

만약 특정 액션에서 에러가 발생하여, Browser가 다른 액션으로 Redirect되는 경우,

이전 액션에서 발생한 Error Message를 확인할 수 있는 방법 이 없게 된다.

(여기서 Flash 는, Flash MX 등에서 사용하는 Flash가 아니다)

 

Flash기능은, 이런 경우에 이전 Action에서, 다음 액션으로 정보를 넘겨주는 것을 가능하게 한다.

(이상 '웹 개발 2.0 루비온 레이슬' -황대산 지음 에서 발췌)

그러면, 사용법을 알아보자.

app/controller/user_controller.rb
class UsesController < ApplicationController
    def list
        @users = User.find(:all)
        @note = flash[:note]
    end
    ..
    def create
        @user = User.new(params[:user])
        if @user.save
            flash[:note] = "새로운 사용자가 추가되었습니다"
            redirect_to(:action => 'list')
        end
end

create라는 액션메소드에서,

사용자를 추가하여, DB에 저장한후, list라는 액션메소드로 건너간다.

이때 'flash' 에 메세지를 저장하고,

이를 list 액션메소드에서 활용하는 것을 볼 수 있다.

View 에서 다음처럼 쓸수 있을 것이다.


    ...
    
        <% if @flash[:note] -%>
            <%= @flash[:note] %>
        <% end %>
     ..