2012-11-03 4 views
0

내 코드는 다음과 같습니다 레일 배열 렌더링 : 자바 스크립트는 다음과 같습니다 내보기 페이지에서JSON 컨트롤러

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

:

$(".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

+0

render : json을 render : text로 변경했습니다. 이제 div가 데이터로 업데이트됩니다. 그러나 데이터는 "tm @ gmail.com, tm1 @ gmail.com"으로 표시됩니다. 행별로 표시하고 싶습니다. . – UserROR

답변

1
two ways 

1) 솔루션

친절

도와 .. .. 데이터로 업데이트 점점되지 않습니다 [email protected],[email protected]

$("#proj_users").html(data); 같은 것 1

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

2) so 당신은 반복 단순화 할 수 있습니다

@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>"); 
     } 
     }); 
    }); 
1

기술인 것 2 :

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

지금 당신은 반복 할 필요는 프론트 엔드에 (() 메소드 .each 사용) 및 @ ubaid의 같이 당신의 HTML에 넣고 콜백 함수.

관련 문제