레일 스 캐스트 번호 197에 표시된대로 레코드를 추가하려고하는 곳의 어플리케이션이 있습니다. 학부모/자녀 관계의 한 단계 : 환자 및 사건 만 있습니다. 코드는 자식 레코드 (이벤트)를 제거하는 데는 문제가 없지만 다음과 같은 이유로 레코드를 추가하지 못합니다. 나는 새 Object를 생성하고 폼에 표시 할 필드를 생성 할 수 있으며 폼은 괜찮아 보입니다. 그러나 : child_index가 생성 된 html의 name 속성에 없습니다. 생성 된 HTML의 예는 다음Railscast 197에 설명 된대로 양식에 동적으로 자식 필드를 추가하면 사용되지 않습니다. child_index 매개 변수로 html 이름 특성 생성
는<textarea cols="30" id="patient_events_attributes_description" name="patient[events_attributes][description]" rows="3"></textarea>
기존 레코드의 HTML은 : [1] 기존의 레코드에 새로운 HTML에서 누락
<textarea cols="30" id="patient_events_attributes_1_description" name="patient[events_attributes][1][description]" rows="3">Opgepakt met gestolen goederen</textarea>
참고있다. 물론 1이 아니어야하지만 new_xxx는 고유 번호로 바뀝니다. 그러나 전체 [new_xxx]가 생성 된 html에 없습니다. 누구가 틀린가 생각하고 있는가?
저는 Ruby 1.9.2와 Rails 3.0.10을 사용하고 있습니다. 프로토 타입이없는 JQuery 또는 쿼리 ujs 있습니다.
내가 사용하는 코드는 여기에 다음과 같다,하지만이 Railscast 코드의 복사본입니다 :이 코드가 작동하지 않습니다 다른 의견을 찾을 수 없어
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| # new_#{association}
render(association.to_s.singularize + "_fields", :f => builder)
end
link_to_function(name, "add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")")
end
function remove_fields(link) {
$(link).prev("input[type=hidden]").val = "1";
$(link).closest(".fields").hide();
}
function add_fields(link, association, content) {
alert(content);
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g");
$(link).before(content.replace(regexp, new_id));
}
, 그래서 나는 아주 잘못된 것을해야 할 것입니다. 거기에 어떤 아이디어가 있습니까?