0

我在控制器中的代码如下所示:

def dashboard
    @proj_users.each do |us|
      @users<<User.find(us.user_id).email
    end
    render :json=>@users
end

在我的视图页面中,javascript 如下所示:

$(".clicked").click(function () {
  $.get("/dashboard", {
      clicked_id:this.id,
      user:$("#user").val()
    },
    function (data) {
      $("#all_users").hide();
      $("#proj_users").html(data);
    });
});

@users是一个包含电子邮件 ID 的数组。如您所见,data将有@users

@users会是这样的 tm@gmail.com,tm2@gmail.com

$("#proj_users").html(data);没有更新数据..

请帮助我..

4

2 回答 2

1
two ways

1)解决方案1

  @proj_users.each do |us|
     email  = User.find(us.user_id).email + "<br>"
     @users << email
   end
   render :text=>@users

2)解决方案2

  @proj_users.each do |us|
     @users<<User.find(us.user_id).email
   end
   render :json=>@users

   in view

   $(".clicked").click(function(){
        $.get("/dashboard",{
        clicked_id:this.id,
        user:$("#user").val()
        },
        function(data)
        {
         $("#all_users").hide();
         $.each(data, function(email){
           $("#proj_users").append(email + "<br>");
         }
        });
   });
于 2012-11-03T06:43:16.913 回答
1

您可以简化迭代:

def dashboard
  render :json => @proj_users.map(&:email)
end

现在您需要在前端迭代(使用 .each() 方法)并将其放入您的 html 中,如 @ubaid 的回调函数所示。

于 2012-11-03T07:10:30.200 回答