redirect_to 사용 시 Bootstrap 지원 플래시 메시지 표시
타이틀의 건에 대해 초곤란하고 있는 분도 보고 있을지도 모르기 때문에 먼저 대답을 말해 두면,
add_flash_types
메소드 를 사용해 키를 허가해 합시다고 하는 이야기입니다.원래 플래시 메시지란?
어플리케이션에 로그인했을 때, 신규 투고의 보존에 성공/실패했을 때, 부정한 액세스를 실시해 리디렉션되었을 때 등, 페이지 상단에 나와 주는 마음이 든 사람 메시지이다.
Rails에서는 이 녀석을 플래시 메시지라고 부르며 쉽게 설정할 수 있는 구조를 제공해 준다.
또한 플래시 메시지는 다시로드하면 사라지기 때문에 바로 일시적인 소식에 하이퍼 편리.
플래시 메시지 어떻게 사용합니까?
여러 사람에 의해서 사용법에 바리에이션이 있는 것 같지만, 개인적으로는 외형의 깨끗함과 응용의 효용 싸움, 김에 Bootstrap의 alert를 적용시키고 싶다고 하는 이유로부터 이런 기술로 실장하고 있다.
보낸 플래시 메시지를 페이지 상단에 표시하는 설명
layouts/application.html.haml
%body
= render "layouts/header"
- flash.each do |key, value|
- key = "info" if key == "notice"
- key = "danger" if key == "alert"
= content_tag :div, value, class: "alert alert-#{key}"
= yield
= render "layouts/footer"
이 위치에 컨트롤러로부터 보내지는 플래시 메시지를 읽는 기술을 한다.
그러면 다시 이상하게 해당 처리가 이루어졌을 때 페이지 상단에 메시지가 표시됩니다.
그냥 처음의 이미지처럼.
플래시 메시지를 컨트롤러에서 보내는 설명
controllers/flash_samples_controller.rb
def create
review = current_user.reviews.new(review_params)
if review.save
redirect_to books_url, success: "Successfully created your prototype."
else
redirect_to root_url, warning: "Unfortunately failed to create."
end
end
이런 식으로 사용하는 경우가 많다.
사족이지만, save 메소드는 정상적으로 데이터의 보존이 완료하면 인스턴스의 존재가 담보되어
true
를, 그렇지 않은 경우는 false
또한 지정할 수 있는 키는, Bootstrap alert 스타일 사용하는 경우라면 이하의 4 종류.키 이름
외형
성공
정보
warning
danger
※플래시 메세지는 redirect 처리 이외의 장면에서도 물론 사용할 수 있지만, 이번 주제는 「redirect 처리시에 제대로 플래시 메세지를 표시시킨다(그리고 지정한 키를 이용해 간단하게 Bootstrap의 스타일을 맞춘다)」이기 때문에 이번에는 redirect_to의 옵션으로 플래시를 사용하는 경우에만 언급한다.
자, 리디렉션하자.
여기까지로 한가지의 기술은 할 수 있었으므로 즉시 표시를 확인해 본다.
이번은 코멘트를 투고했을 때에 플래시 메세지를 표시시키는 케이스를 상정.
막상!
…응?
나오지 않아?
설정해야하는 플래시 메시지가 나오지 않습니다!?
녀석이 빠진 것 같습니다.
실은 플래시 메시지에는
notice
와 alert
의 2 종류의 키 밖에 설정할 수 없다.Bootstrap 사용할 수 없으면 번거롭기 때문에 다른 키를 허용하는 설명을 컨트롤러에 추가한다.
플래시 메시지의 키를 허용하는 설명
application_controller.rb
class ApplicationController < ActionController::Base
add_flash_types :success, :info, :warning, :danger
end
ApplicationController
에 add_flash_typesメソッド
사용 이제 드디어 Bootstrap에 대응한
success
info
warning
danger
지금의 상태로 다시 표시를 확인해 본다.막상!
나왔다…!!
이것으로
redirect_to
에 옵션으로서 플래시 메세지를 부여하는 것만으로 간단하게 기분이 좋은 사람 메세지를 표시할 수가 있다.
Reference
이 문제에 관하여(redirect_to 사용 시 Bootstrap 지원 플래시 메시지 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Yama-to/items/4d19a714d8bf5bfbabdd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)