2016-11-10 15 views
-1

ユーザーがリンクをクリックした後にフラッシュメッセージを印刷しようとしています(下のjs.erbファイルに表示されています)。組み込みルビの中にjavascriptを入れる方法は?

$('a').click(function(){ 
      <% flash.now[:alert]= "Successfully added "%> this.innerHTML <% "to cart" %> 
     }) 

私はフラッシュメッセージiが埋め込まれたルビーにJavaScriptを埋め込むために持っているように、それはそうなので、私は問題を抱えています「カートに入れる(クリックされたものは何でも)追加に成功しました」と言いたいです。

+0

Ajaxを呼び出してカートにアイテムを追加すると仮定し、Ajaxの成功後にフラッシュメッセージを表示するとしますか?私はあなたがここであなたの答えを見つけるだろうと思うhttp://stackoverflow.com/questions/21032465/rails-doesnt-display-flash-messages-after-ajax-call – Satendra

答えて

0

ERBの仕組みを誤解しているようです。ルビコードをERBファイルに追加すると、サーバー上で実行され、出力はクライアントに送信されるプレーンHTMLの場所に挿入されます。あなたのコードが実行しているのは、あなたのサーバー上でruby flash.new[:alert] = "Successfully added""to cart"を実行することです。そして、クライアントにHTMLで送信されたJavaScript関数は次のとおりです。明らかに何もしない

$('a').click(function(){ 
    this.innerHTML 
}) 

。おそらくあなたがしたいのは、this.innerHTMLというjavascript関数からサーバーにAJAXリクエストを送信し、このリクエストを受け取った時点でルビコードを実行することです。

私はこの最後の段落はあなたに専門用語のように思えるが、うまくいけば、これはあなたにいくつかのグーグルの弾薬を与えるだろう。あなたはerbがどのように動作し、どのようにフラッシュが動作するのかに関するかなりの誤解があります。実際には私が実際には行かない巨大な投稿がなければ、本当にあなたを助けることはできません。幸運グーグル!

関連する問題