2012-03-06 5 views
2

Ruby on Rails 3에 CRUD 애플리케이션이 설정되어 있습니다. 아약스를 여기에 추가해야합니다. 내 첫 번째 요구 사항은 새 양식 링크를 클릭 할 때 사용자 정의 양식을 검색하는 것입니다. 이는이 시점에서 내가 가지고있는 링크입니다 :Rails 3에서 Ajax 요청의 응답을 처리하려면 어떻게해야합니까?

나는 새 책 액션에 다음 조정을했습니다 내 컨트롤러의
<%= link_to 'New Book', new_book_path(:subject_id=>@subject.id), :remote=>true %> 

:

def new 
    @book = Book.new 
    if params[:subject_id].to_i >0 then 
     @book.subject_id = params[:subject_id] 
    end 

    if request.xhr? 
     respond_to do |format| 
     format.html # new.html.erb 
     format.json { render json: @book } 
     render :layout => false, :file=>'app/views/books/_form' 
     return false 
     end 
    else 
     respond_to do |format| 
     format.html # new.html.erb 
     format.json { render json: @book } 
     end 
    end 
    end 

내가 불을 지르고에서 확인하고 생성 된 링크를 클릭 그러나 응답을 처리하는 방법을 모르겠 양식 HTML을 반환합니까? 도와주세요.

+1

당신은 자바 스크립트로 응답을 처리해야한다 : 당신이 사이트에 컨트롤러에 의해 렌더링 부분 (HTML)를 삽입 할 경우 jQuery를 사용하면,이 같은 (안된)를 가질 수있다. Ajax 부분은 어떻게 생겼습니까? 코드를 추가 할 수 있습니까? – auralbee

+0

내가 한 모든 것은 원격 매개 변수를 추가하는 것입니다. - 더 있습니까? 나는 여기 레일에 총 초보자 야. – Ali

답변

1

대신 HTML로 응답이

$("#idname").append(<%= render "form" %>) 

이 렌더링 그 방법과 같이 될 수 귀하의 .js.erb 파일 내부의 .js

응답 및 양식 HTML을 반환뿐만 아니라 JS를 제공합니다 HTML을 추가하는 코드.

+0

내가 erb js 파일을 설정하지 않았습니까? 나는 레일스 3에 상당히 익숙하다. 나는 이것을 어디에서 설정할 것인가. – Ali

+0

플러스 PHP에서 일반적으로 JSON 인코딩 된 개체 내 HTML 및 다른 변수를 묶고 자바 스크립트에서 응답 처리기에서 데이터를 처리 할 거라고. 루비 레일에서 이것을 어떻게 에뮬레이션 할 수 있습니까? 아니면 더 좋은 방법입니다. Ajax 쿼리에서 원시 html을 반환하는 것이 좋은 생각입니까? – Ali

+0

글쎄, 거기에 옳고 그른 방법이 있는지, 나는 꽤 평판 좋은 소스를 보았다 두 경로를 모두가. 그리고 나는 js를 전달하기 전에 루비를 컴파일하기 때문에 .js.erb를 의미하는 것이 유감입니다. –

0

확실히 Rails가 자바 스크립트를 생성 할 수는 있지만, 자바 스크립트 코드보다 "제어력"이 좋아야합니다. 예를 들어

$("#new-book-button").click(function() { 
    $.get('books/new', function(data) { 
    $('#some-form-container').html(data); 
    }); 
} 
관련 문제