2016-01-10 140 views
0

我已经使用ajax从控制器中获取对象。我可以在rails中使用ajax更改实例变量吗?

$('#city').on('change',function(){ 
    $.ajax({ 
     url: "/courses/index", 
     type: "GET", 
     data: {city: $('#city').val() }, 
     success: function(responseData) { 
     alert(responseData); 
     } 
    }); 

所以responseData是课程的json格式集合。

目前,我有一个HTML代码:<%= @courses.first.name %>

如何修改@courses实例,它的结果是AJAX的responseData。

谢谢。

回答

1

您不能更改实例变量,因为它属于您正在使用的Ruby类的实例

使用ajax调用各自类的新实例(在服务器上); JavaScript的只与前端视图工程(HTML代码/ DOM),所以你必须填写与响应:

$(document).on('change', '#city', function(){ 
    $.ajax({ 
     url: "/courses/index", 
     type: "GET", 
     data: {city: $('#city').val() }, 
     success: function(responseData) { 
     course = JSON.parse(responseData); 
     $(".element").html(course.name); 
     } 
    }); 
}); 

不知道你期待回等数据,它是一种很难知道如何“解析”你的数据。然而,重要的是要注意的是,您应该而不是试图更改ERB,而不是识别html并将其替换为您收到的JSON。另外,您需要使用类似JSON.parse的东西来在您的javascript中创建一个可用的对象(然后您可以使用它来填充页面)。

+1

感谢您的解释。 – Stephen

0

听起来就像您想通过Ajax将信息发回到rails应用程序。

相关问题