2012-07-12 4 views
0

나는 사용자가 링크를 클릭 할 때 페이지에 동적으로 내용을 추가하고 이후에 자바 스크립트를 실행하려는 경우 list.html.erb 페이지가있는 컨트롤러가 있습니다.어떻게 레일에 내용을 동적으로 추가 할 수 있습니까?

js.erb 파일을 렌더링하는 메서드를 가질 수 있으며이 파일에 내용이 들어있는 변수를 넣을 수 있습니까? 이 같이

가장 필

답변

0

를 사용해야합니다. 그것은 최선의 행동 방침이 아닐 수도 있습니다.

자바 스크립트를 통해보기의 기능을 향상 시키려면 Ruby에서 생성 한 자바 스크립트가 아닌 자바 스크립트로 코드를 유지하는 것이 좋습니다.

컨트롤러에서 JSON 형식 또는 HTML 코드 조각으로 새 콘텐츠를 가져 오는 간단한 HTML 링크를 만듭니다. $ .ajax와 success 콜백 함수를 사용하여 페이지의 요소에 응답을 추가합니다.

$.ajax({ 
    url: "whatever/here", 
    type: "GET", 
    data_type: "json", 
    success: function(response) { 
    $("#element_in_question").append(response); //if HTML; if JSON, parse and build the HTML 
    }, 
    error: function(xhr, status, message) { 
    //indicate failure somehow 
    } 
}); 
0

list.html.erb에 partial을 포함하고 list.html.erb 페이지에서 일부 내용을 변경할 때 partial을 표시 할 수 있습니다. 당신의 list.html.erb 파일을 고려 예를 들어,

<form_for :something, :remote => true, :method => get :url => {:action => "partial"} do |f| %> 

//write your code here 

<%=f.submit%> //here you can have :onchange in the form_for tag if you do not want a submit button 

는 partial.js 쓰기

<div id="partial"> 
</div> 

아래로 목록 페이지에 부분에 대한 부문 쓰기 페이지에 다음을 포함 할 수 있습니다. ERB는 다음과 같이 파일 :

$('#partial').html("<%=j render "partial" %>"); 

가 동적으로 list.html.erb를 추가 할 콘텐츠와 _partial.html.erb 파일을 만듭니다.

def partial 
//write your code here 
respond_to do |format| 
format.js 
end 

이것은 "부분"

DIV의 ID로 목록 페이지의 div 태그에 추가 된 내용을 표시합니다 : 컨트롤러에서

다음 코드를 추가합니다
관련 문제