Twitter風のNoticeメッセージ on Rails3

こういう感じでTwitter風のNoticeメッセージ出したかった。



下記のJQueryプラグインを利用
Jquery Notification Plugin.


JSはこんな感じでラッピングしとく。
typeもパラメータ渡しするようにしといてもいいかもね。

//public/appllication.js
function show_msg(msg){
  if (msg != '' || msg != null){
    showNotification({
      type: "information",
      message: msg,
      autoClose: true,
      duration: 3
    });
  }
}


コントローラではいつも通りflash[:notice]に文字列埋め込む

# some_controller.rb

def hoge
  flash[:notice] = 'メッセージ'
end


View側ではCSSプラグイン読み込んで上記で作っておいたshow_msg()に渡す。

# app/views/layouts/application.html.erb

<%= stylesheet_link_tag 'jquery_notification' %>
<%= javascript_include_tag 'jquery_notification_v.1' %>


<% unless flash[:notice].blank? %>
  <script type="text/javascript" charset="utf-8">
    $(function(){
      show_msg('<%= flash[:notice] %>');
    });
  </script>
<% end %>


これで、コントローラ側でflash[:notice]に文字列埋め込んだときだけメッセージがバラっと出てくるようになりましたとさ。