2016-08-16 2 views
1

원격 만들 수있는 링크 모달 편집 기록을 레일, 사용자가 조동사를 사용하여 인덱스 페이지에서 레코드를 편집 할 수 있도록하는 것입니다. 내 index.haml보기에서내가 달성하기 위해 노력하고있어 <a href="https://richonrails.com/articles/basic-ajax-in-ruby-on-rails" rel="nofollow">here</a></p> <p>발견 내가 자습서를 따랐다

나는이 있습니다

_edit.haml에서
- @bars.each do |bar| 
    = link_to "Edit", edit_bar_path(bar), remote: true, class: "btn btn-default" 

#bar-modal.modal.fade 

:

edit.js.erb _form.haml에서

$("#bar-modal").html("<%= escape_javascript(render 'edit') %>") 
$("#bar-modal").modal("show") 

에서

.modal-header 
    %h3= "Editing #{@bar.foo}" 
= render "form" 

= bootstrap_form_for @bar, remote: true do |f| 
    = f.text_field :foo 
    = f.button "Save" 

내 컨트롤러는 표준 레일즈 생성 CRUD 컨트롤러입니다.

링크를 클릭하면 몇 가지 이유로 모달이 표시되지 않습니다. 나는 다른 방식으로 작동하도록 만들었지 만 편집 한 형태가 아닌 '생성'형식을 열었습니다.

저는 부트 스트랩과 햄을 사용하고 있습니다. 나는 방화범에 오류가 없음을 확인했다.

무엇이 누락 되었습니까?

+0

'index.html.haml'을 게시 할 수 있습니까? –

+0

@ArunKumar 질문의 첫 번째 코드 세그먼트가 현재 전체 색인 파일입니다. 나는 그 밖의 모든 것들을 제거하여 작동 시키려고했습니다. – Herm

+0

은 해결책을 추가했습니다. 문제가 해결되는지 알려주세요. –

답변

2

컨트롤러를 수정하여 js 응답을 렌더링 했습니까? 컨트롤러의 edit 행동

,

def edit 
    #find the record 
    respond_to |format| 
    format.js # this will render edit.js.haml 
    # other formats 
    end 
end 

추가 그리고 당신은 당신의 edit.js.haml에 hamlerb을 혼합했다. 코드의 첫 번째 줄이 실행

$('#modal-container').html('#{ j(render 'edit') }'); 
$('#bar-modal').modal("show"); 

으로 #bar-modal 우리의 문서에 존재 함을 교체합니다. 그런 다음 modal 메서드를 호출하여 모달을 표시 할 수 있습니다.

jescape_javascript의 별칭입니다. (키 입력이 적음)

modal-container 인 ID가 div인지 확인하십시오. 그리고 귀하의 모달 (_edit.html.haml)의 ID는 bar-modal이어야합니다. 우리가 ID bar-modal과 모달을 가지고이이 index.html.haml에 있어야 자리 표시 자 DIV #modal-container로 렌더링됩니다

.modal.fade.in#bar-modal 
    .modal-dialog 
    .modal-content 
     .modal-header 
     %h3= "Editing #{@bar.foo}" 
     .modal-body 
     = render "form" 

참고 :

그리고 _form.html.haml에 모달는 다음과 같이 보일 것입니다. 그것은 이런 식이어야합니다.

%div{id: "modal-container"} 
    <!-- this is where the modal will go in --> 

- @bars.each do |bar| 
    = link_to "Edit", edit_bar_path(bar), remote: true, class: "btn btn-default" 

modal-container을 문서 맨 위에 추가하십시오.부트 스트랩의 문서,

모달 마크 업 위치에서

항상 모달의 모양 및/또는 기능에 영향을 미치는 다른 요소를 방지하기 위해 문서의 최상위 위치에 모달의 HTML 코드를 삽입하려고합니다.

희망이 있습니다.

+0

현재 상황이 발생하고 있습니다. 링크를 클릭하면 방화 상자에 500 개의 오류가 표시됩니다. 그래서 이유를 알아 내려고 노력합니다 ... 일단 해결되면 알려 드리겠습니다. 도와 주셔서 감사합니다!!! – Herm

+0

나는 500 오류를 없앴습니다. 그러나 모달은 아직 보이지 않습니다. 내 로그에서 예상 한 뷰 파일을 렌더링하고 있지만 모달은 브라우저에 표시되지 않습니다. – Herm

+0

@Herm 네트워크 탭에서 응답 본문에'모달 HTML '이 보이나요? 이 프로젝트가 github에 있습니까? 그렇다면 URL을 게시하십시오. 나는 모양을 가질거야 –