2013-10-12 3 views
0

저는 Ruby on Rails의 초보자이며 일반적으로 웹 개발의 초보자입니다. Railscasts ep 196 - 198에 Neste 양식을 배우려고했습니다. Javascript 및 도우미 부분까지 에피소드를 공정하게 이해합니다. 나는 여전히 자바 스크립트에서 "add_fields"함수를 이해할 수 있지만 그가 메소드를 연결하기 시작했을 때, 나는 압도 당했다. 누구든지이 바보를 도울 수 있습니까?Ruby on Rails 중첩 모델 내역

application_jquery.js :

function remove_fields(link) { 
    $(link).prev("input[type=hidden]").val("1"); 
    $(link).closest(".fields").hide(); 
} 

function add_fields(link, association, content) { 
    var new_id = new Date().getTime(); 
    var regexp = new RegExp("new_" + association, "g") 
    $(link).parent().before(content.replace(regexp, new_id)); 
} 

도우미/application_helper.rb : 그런데

module ApplicationHelper 
    def link_to_remove_fields(name, f) 
    f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)") 
    end 

    def link_to_add_fields(name, f, association) 
    new_object = f.object.class.reflect_on_association(association).klass.new 
    fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder| 
     render(association.to_s.singularize + "_fields", :f => builder) 
    end 
    link_to_function(name, "add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")") 
    end 
end 

도움이된다면, 나는 레일 4를 사용하고 있습니다.

답변

0

나는 똑같은 문제를 겪고 있습니다. 문제는 이것이 레일 4에 대해 리팩토링되어야한다는 것입니다. 나머지 코드를 레일 4로 업데이트하는 방법을 알아 냈습니다. 레일 캐스트 토론 스레드에 게시했습니다.하지만이 자바 스크립트 및 도우미 코드는 현재 아무 것도하지 않고 있으며, 분명히 누락되었습니다. 누군가의 도움이 있으면 대단히 감사하겠습니다!

편집 : 업데이트 된 레일 403 "동적 양식"에 제공된 코드로 코드를 업데이트했으며 작동합니다 (프로 캐스팅).