2016-07-03 1 views
0

내보기에 양식이 있고 제출시 컨트롤러에서 필드의 유효성을 검사하고 @errors에 오류 목록이있는 경우 오류 목록을 반환합니다.페이지로드시 조건부로 모달 표시

이제 이러한 오류를 모달로 표시하려고합니다.

여기 내가보기에이 내용은 다음과 같습니다

!-- Modal --> 
<div id="myModal" class="modal fade" role="dialog"> 
    <div class="modal-dialog"> 

    <!-- Modal content--> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <%= render 'shared/errors' %> 
     </div> 
     <div class="modal-footer"> 
     <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
     </div> 
    </div> 

    </div> 
</div> 

내가 @errors이 존재하는 경우에만 경우, 페이지로드에서이 모달을 표시합니다.

coffeescripts가 컨트롤러에서 전달한 변수에 액세스하지 못하는 것 같습니다.

몇 가지 비슷한 질문이 있지만 그 중 아무 것도 내 문제를 해결하지 못하는 것 같습니다.

+0

한 생각이며, 모달 자체,'@의 error.present' 반환'렌더링하지 않습니다 false'. 그리고 그것은 ERB에서 할 수 있습니다. JS 도움말이 필요 없습니다. –

+0

고마워,하지만 JS를 사용하지 않고 조건이 true이면 모달을 표시하려면 어떻게해야합니까? – user1175969

+0

그런 다음 JS 코드를 [javascript_tag'] 태그 (http://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html#method-i-javascript_tag) 태그 안에 래핑하는 뷰에 넣어야합니다. –

답변

0

gon gem을 사용하여이 작업을 수행 할 수 있습니다.

  1. "gem 'gon'"을 (를) 귀하의 Gemfile에 추가하십시오.
  2. run bundle install.
  3. 다음과 같이 컨트롤러에 값을 설정하십시오. gon.form_errors = true 일 경우 @ errors.present?
  4. 자바 스크립트 태그를 포함하는 모든 전에 머리 섹션에서 응용 프로그램 레이아웃이 줄을 추가 : - 레일 4의 경우 : <% = 곤 :: Base.render_data %> 및 레일 3 <% = include_gon %의 지금>
  5. 당신이 이처럼 gon.variable_name 및 사용이처럼 커피 파일에서이 변수에 액세스 할 수 있습니다

    if gon.form_errors 
    
        $('#your-modal-id').modal('show') 
    
관련 문제