Bootstrap 사용 시 Rails의 플래시 장치

6303 단어 RubyRails

개시하다


'Ruby on Rails tutorial'과'Ruby on Rails 5의 뛰어난 사용법'에서 플래시 메시지를 표시하는 시스템을 잊지 않기 위해 작성해야 한다.

플래시 정보


flash.rb
flash[:notice] = "フラッシュです"
redirect_to path
보고 싶은 느낌으로.

bootstrap 색상 정보


bootstrap
alert alert-*** 
이런 반을 설정하면 좋은 느낌을 줄 수 있다.

이런 느낌이에요.
다양한 색깔을 준비했습니다.
alert-success
alert-danger
alert-info
alert-warning
네.
이 네 가지alert를 나눠서 쓰면...
flash-all.rb
if flash[:notice]
  <div class="alert alert-notice">
    <%= flash[:notice] %>
  </div>
elsif flash[:info]
  <div class="alert alert-info">
    <%= flash[:info] %>
  </div>
elsif flash[:danger]
  <div class="alert alert-danger">
    <%= flash[:danger] %>
  </div>
elsif flash[:warning]
  <div class="alert alert-danger">
    <%= flash[:danger] %>
  </div>
end

이렇게 하면 길어져요.

application_helper.rb에 조수법 쓰기


이렇게 긴 시간을 어떻게든 대처하기 위해서.helper.달성
application_helper.rb

def flash_message(message, klass)
  content_tag(:div, class: "alert alert-#{klass}") do
    concat content_tag(:button, 'x', class: 'close', data: {dismiss: 'alert'})
    concat raw(message)
  end
end


application.html.erb에서 아까 방법을 사용하세요.


application.html.erb

<%= flash_message(flash[:success], :success) if flash[:success] %>
<%= flash_message(flash[:error], :danger) if flash[:error] %>
<%= flash_message(flash[:alert], :warning) if flash[:alert] %>
<%= flash_message(flash[:notice], :info) if flash[:notice] %>

이렇게 하면 해결된다.
좀 시원해졌어요.
만약 무슨 잘못이 있으면 지적해 주세요.
참고 문헌
"Ruby on Rails5의 뛰어난 사용법"
https://www.amazon.co.jp/Rails-5숙련된 사용 방법 - 현장 엔지니어가 Rails 응용 개발을 가르치는 실천 기법 - Engineers-Books/dp/47981535/ref=sr-1_4?ie=UTF8&qid=1544168971&sr=8-4&keywords=ruby+on+rails+5

좋은 웹페이지 즐겨찾기