1

Ajax呼び出しからGoogleIDを受け取り、そのIDを使用してビューのボタンを更新したいと思います。

new.html.erbにリンクされているnew.js.erbのコードを次に示します。

問題は、変数の内容を渡す方法がわからないことです。レストランはjsonです。アラートは正しいIDを返し、返されたgoogle IDを使用してターミナルでデータベースを検索すると、レストランが見つかります。

コードは次のとおりです。

alert(restaurant["google_id"]);
    var google_id = restaurant["google_id"];
    $("#rating_bar").html("<%= escape_javascript(render 'reviews/buttons/full_profile_rate_restaurant', :google_id => "+google_id+".html_safe) %>");

渡される変数は、Google IDである文字と数字の組み合わせではなく、文字列「google_id」になります。私は複数のアプローチを試しましたが、これは多くの間違ったアプローチの1つにすぎません。この質問は、JSを本当によく知っている人にとっては非常に簡単だと思います。

4

1 に答える 1

3

JS変数をrubyパーシャルに渡すことはできません。

Ryan Biggがここで同じタイプの問題について説明したように、その部分的なレンダリング中に変数を送信することはできません。私たちは何か他のことを解決する必要があります。私も一度同じ問題を抱えていました。

または、

それがgoogle_idがパーシャルに表示する変数にすぎない場合は、そのパーシャルをレンダリングした後、それらのdivを手動で更新します。

お気に入り

$("#rating_bar").html("<%= escape_javascript(render 'reviews/buttons/full_profile_rate_restaurant', :google_id => "sample_id") %>");
// Now update the required elements
$("#what-ever-ids").text(google_id);

または、そのコントローラーで他のアクションを作成し、そのアクションにajaxリクエストを送信すると、このjs変数が作成され、そのjs.erbファイルで、実際にgoogle_id変数で更新するのと同じパーシャルがレンダリングされます。 。

于 2013-03-23T19:45:01.460 に答える