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]に文字列埋め込んだときだけメッセージがバラっと出てくるようになりましたとさ。