Rails 4:将JSON对象(来自AJAX响应)渲染到视图中

我正在使用Rails 4,我对JSON对象很新。

我有一个控制器:

class UsersController  @users} } end end end 

和一个javascript users.js:

 $.ajax({ url: "/users/select_users", dataType: "json", data: { prezzario: ui.item.value }, success: function(data) { $('#usersList').append(data.users); } }); 

现在我想在div中呈现这个用户集合,但我不知道如何。 在数据响应中,我在控制台中有正确的数据,对象如下:

 {"users":[{"_id":{"$oid":"536cf7b6b8dd181f4b7acf9f"},"children":[{"$oid":"536cf7b6b8dd181f4b7acfa0"},{"$oid":"536cf7b7b8dd181f4b7acfd1"}],"description":"Some description.","name":"My name","user_id":"1"},{...........}]} 

我有一个部分/users/_users.html.erb与经典users.each和所有属性的打印。 如果我试试

 $('#usersList').append(" "+data.users+"} %>"); 

我在div中找到#usersList undefined }%>

我想创建一个部分模板并使用它来呈现用户。 我怎样才能做到这一点?

有3种解决方案(我能想到):

  1. 您的控制器可以在您附加到js的后端呈现HTML,例如

      class UsersController < ApplicationController def select_users @users = User.all render "view", :users => @users end 

      success: function(data) { $('#usersList').append(data); } 
  2. 你可以使用像胡子或把手这样的东西。 从未使用它,所以我不能做一个正确的例子。 抱歉。

  3. 你可以在成功代码的侧面渲染html

      success: function(data){ data.users.forEach(function(user){ $user_html = $("
    " + user.name + "

    你必须$.parseJSON(data); 第一。

    喜欢

      $.ajax({ url: "/users/select_users", dataType: "json", data: { prezzario: ui.item.value }, success: function(data) { var r = $.parseJSON(data); console.log(r.users)//This is where Your users are } });