Rails で何かやってて、どこかでクライアントのメッセージダイアローグを開きたくなったとき、まあクライアントサイドJavaScript の alertメソッドを呼び出せば良いわけなんだがどうしたものかな、と。
Rails の Ajax対応とか RJS とかそういう話になるんだけど alertメソッド一つの事なので余りいろいろ意識したくない。
ビューの末尾辺りに
<%= update_page_tag{|page| page.alert "#{h Time.now}" } %>
とか
<%= javascript_tag "alert('#{h Time.now}')" %>
かな。
update_云々のなかの alert は Rubyのメソッド(Module ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods)、javascript_云々の方では「"(二重引用符)」の中は JavaScript、JavaScript的には文字列リテラルは「'(単一引用符)」で囲ってても良いの注意。
Module ActionView::Helpers::PrototypeHelper#update_page_tag メソッドの趣旨としてはこういう使い方はちょっと違うのかもしれないけど、文字列の式展開は update云々の方が分かり易いかな。javascript_云々の方だとなんとなく「'(単一引用符)」文字列のなかで式展開させてる様に見えてちょっと変な感じ。
生成する JavaScript もちょっと違うので一度中見ても良いかな。
この JavaScript片を書く場所注意、ブラウザによっては(多くは) JavaScript片の実行が終了(ダイアローグの「OK」釦押下)するまで以降のレンダリングをしない。layout とか使ってるとへんな事になるかも。
あと、link_to_function や button_to_function を使うと alertを呼ぶリンクや釦も作れる。