2012-07-25 4 views
0

안녕하세요?레일즈 - 자바 스크립트 이벤트에서 아약스 요청을 받고 부분로드

레일 3.2.3과 루비 1.9.2p290을 사용하고 있습니다.

내가 많은 purchase_payments있는 모델 구매가 : 내 양식에

class Purchase < ActiveRecord::Base 
    has_many :purchase_payments, :class_name => 'PurchasePayment', :dependent => :destroy 
    accepts_nested_attributes_for :purchase_payments 

    def Purchase.build_payments(count) 
    #Creat #count payments with some logic for each of them 
    end 
end 

을, 나는 number_field 한 : 이제

<td> 
    <%= f.number_field :payments_count, :min => 0 %> 
</td> 

, 내가 purchase_payment 필드의 기반이 나타나도록하고 싶습니다 지불 수. 이를 위해, 나는 특정 사업부가 있습니다

<div id="purchase_payments_space"> </div> 

내가 지금까지 발견 한 모든 자원, LINK_TO 같은 도우미 태그에 의해 생성 아약스에 대한 이야기, ..., => 진정한 원격하지만,이 태그를 사용하여, 사용자는 링크를 클릭하여 원격 기능을 호출해야합니다. 내 응용 프로그램의 다른 부분에서, 나는 JQuery와 아약스 요청을 사용하고 난 내 컨트롤러에 요청을 보내기 위해 다음과 같이 사용하려고 해요 : 내 컨트롤러에서

function load_payments() { 
    $.ajax({ 
    type: "POST", 
    url: "/purchases/build_payments/" + document.getElementById("purchase_payments_count").value, 
    }); 
} 

$(document).ready(function() { 
    $("#purchase_payments_count").change(load_payments); 
} 

, 나는 respond_to이 있습니다 바로 내 수업 후 JS 선언 다음과 같은 방법

def build_payments 
    pc = params[:payments_count].to_i 
    @purchase = Purchase.new 

    @purchase_payments = Purchase.build_payments pc 

    respond_to do |format| 
    format.js 
    end 
end 

내가 확인을 실행 buid_payments.js.erb/내 응용 프로그램/조회/구매가 이런 식으로. 문제는, 나는 내 양식에 포함되어야하는 지불금 모음을 구축하고 있고, 현재 내가하고있는 방식대로 일을하는 것이 레일스처럼 보이지 않는다는 것입니다. 이 방법으로 js.erb 파일에 많은 코드를 작성해야하며 여전히 params에서 전체 구매를 작성하는 메소드를 작성하는 방법을 알아낼 수 없습니다 (양식을 작성하는 방법을 모르겠습니다. 자바 스크립트).

여러 가지 방법을 살펴 보았지만 자바 스크립트 이벤트에서 아약스 요청을 내리고 뷰에 중첩 된 속성 (내 기억해야하는 purchase_payment 콜렉션)의 중첩 필드를 만드는 통합 솔루션을 제공하지 못했습니다.

나는 http://railscasts.com/episodes/196-nested-model-form-part-1http://railscasts.com/episodes/197-nested-model-form-part-2을 보았습니다. 그러나 그것들은 link_to 및 link_to_function과 같은 도우미 메서드 위에 만들어졌습니다.

누구든지 나를 어떻게 안내 할 수 있습니까? 내가 당신을 도울 수를 볼 수없는 경우

답변

0
$.ajax({ 
    url: "purchases/build_payments", 
    type: 'POST', 
    data: $('#purchase_payments_count').val(), 
    dataType: 'html', 
    headers: { 
     'X-CSRF-Token': '<%= form_authenticity_token.to_s %>' 
    } 
}); 

는 채울 수있는 buid_payments.js.erb를 실행합니다

def build_payments 
    pc = params[:payments_count].to_i 
    @purchase = Purchase.new 

    @purchase_payments = Purchase.build_payments pc 

    respond_to do |f| 
    f.js {} 
    end 
end 

은 \ 테이블

을 다시 작성하십시오.

+0

죄송합니다. 그러나 이것이 서버의 응답을 어떻게 바꿀지는 모르겠습니다. – HFSDevBR

관련 문제