4

Rails 3.1 응용 프로그램에서 nested_form을 사용하고 있습니다. 문제는 "link_to_add"에 의해 생성 된 링크를 클릭하면 부분적으로 두 번 표시되는 반면 한 번만 표시된다는 것입니다. 거기 당신은 몇 가지 코드를 이동 :nested_form이 부분을 두 번 표시합니다.

형태 :

<%= nested_form_for @product, :html => {:multipart => true} do |f| %> 

    <%= f.fields_for :safety_info_files %> 
    # adds a link for displaying the template 
    <%= f.link_to_add "Add file", :safety_info_files %> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

템플릿 :

<div class="fields"> 
    <%= f.link_to_remove "remove" %><br /> 
    <%= f.label :doc, "File" %> 
    <%= f.file_field :doc %><br /> 
</div> 

다른 사람이 같은 문제가 있었나요?

편집 :

어리석은 실수를 저 바보. 죄송합니다. 시간을 낭비하게 만들었다면 문제는 "nested_form.js"를 두 번로드했기 때문에 동일한 횟수만큼 부분을 추가 한 함수를 호출했기 때문입니다.

죄송합니다.

+0

가 어떻게로드를 두 번 해결 되었습니까? 파일의 복사본이 두 개 되었습니까? 아니면 스프로킷과 관련이 있습니까? – ZMorek

+0

ZMorek 정말 어리석은 실수 였어. 내 application.js에서 'require_tree.'를 통해 nested_forms.js를 요청한 다음 javascript_include_tag를 사용하여 명시 적으로 다시로드했습니다. 비슷한 문제가 있습니까? – davids

+0

'nested_forms.js'를'/ vendor/assets/javascripts /'에 넣었습니다. 어쨌든 두 번로드되는 것처럼 보입니다. 나는 태그를 추가하지 않았지만 그것은'application.js'에 있습니다. 몇 번 시도해 보았습니다. 몇 가지 변형을 시도하고, 컴파일 된 파일을 삭제 한 다음 다시 컴파일해야 할 수도 있습니다. – ZMorek

답변

4

어리석은 실수, 어리석은 나를. 죄송합니다. 시간을 낭비하게 만들었다면 문제는 "nested_form.js"를 두 번로드했기 때문에 동일한 횟수만큼 부분을 추가 한 함수를 호출했기 때문입니다.

0

나는 똑같은 문제에 직면했다.

내 응용 프로그램 레이아웃 파일에 nested_form.js를 포함 시켰습니다.

그리고 내 app/assets/javascripts/application.js 파일을 변경하지 않았습니다. 레일즈 애플리케이션을 만들 때 생성 된 그대로입니다.

응용 프로그램 레이아웃에서 항목을 제거하면 문제가 해결되었습니다.

1

rails 4/turbolinks를 사용하여이 문제가 발생하고 nested_form.js가 두 번 포함되지 않는 경우 application.js에서 turbolinks를 제거하십시오. 내가 이것을하고 서버를 반송하자마자이 문제는 해결되었습니다. 여기

제공 : https://github.com/ryanb/nested_form/issues/307

관련 문제