1

我从 Ajax 调用中收到了一个 google ID,然后想使用该 ID 来更新我视图上的按钮。

这是 new.js.erb 中的代码,它链接到 new.html.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 的字母和数字的组合。我尝试了多种方法,这只是许多错误方法之一——我认为这个问题对于非常了解他们的 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 回答