2014-12-16 3 views
1

그래서 내가 원하는 것은 이벤트를 업데이트 한 후 테이블을 다시 렌더링하는 것입니다.렌더링이 부분 렌더링 후 작동하지 않습니다. 부분 js

나는 이런 식으로 작업을 수행합니다

## My Controller: 

respond_to do |format| 
    if schedule_child.save 
    sql = "schedules.doctor_id = ? AND schedules.location_id = ? AND schedule_children.start_time >= ? AND schedule_children.start_time <= ?" 
    @schedules = ScheduleChild.joins(:schedule).where(sql, current_doctor.id, session[:location_id], Time.now, Time.now + 7.days).order(start_time: :asc).page(params[:page]).per(7) 
    format.js {render :layout => false} 
    end 
end 

내 js.erb :

$('#schedules').html("<%= escape_javascript(render "schedules") %>"); 

내보기 :

%a.status_link.btn.btn-success.btn-sm{"data-href" => set_schedule_status_path(location_id: session[:location_id] ,id: schedule.id), :style => "#{schedule.is_away ? 'display: none' : '' }", :id => "#{schedule.id}", :remote => "true"} 
      %i.fa.fa-check-square-o 
      %span Available 

표는 성공적으로 렌더링했지만, 난이 링크를 클릭 할 수 없습니다 내 견해로. 나는 무엇을 잘못 했는가? 도와 줘서 고마워.

+0

@RajarshiDas 예 –

답변

2

"href" 대신 링크로 "data-href"을 사용하면 링크를 사용할 수 있도록 추가로 자바 스크립트가 필요합니다. 아마 당신은 그 자리에 자바 스크립트가 있고 document.ready에 전화하고 데이터 속성 "data-href"로 모든 링크에 자바 스크립트 로직을 적용합니다. 이 경우

당신이 (당신이 사용하는 데이터 href가 어떤 논리 모른다으로 단지 추측) 네 가지 옵션이 있습니다

  • 사용 href 대신 data-href
  • 전화 논리
  • 전화처럼 항상 존재하는 부모 노드에서 논리를 정의 document.readyajaxStop
  • 에 링크를 가능하게하는 로직 (테이블을 교체 한 후)이 당신의 js.erb에 링크 할 수 있습니다
+0

'href'를 사용하면이 ActionController :: UnknownFormat 오류가 발생합니다. 왜 다른가? –

+0

data-href는 javascript onclick을 통해 작동하지만 href는 기본 링크입니다. 'ActionController :: UnknownFormat'은 주어진 경로에서 처리하지 못하는 응답 형식을 요구하고 있음을 의미합니다. 'set_schedule_status_path (location_id : session [: location_id], id : schedule.id, format : : js)'는 js 형식을위한 것입니다. –

+0

답을 바탕으로'$ ("a.status_link")를 다시 정의하여 작동하도록했습니다. js.erb (option 2로 이동)에서 click (function()'을 누르십시오. 어떤 옵션이 가장 좋은 방법인지 궁금하십니까? 옵션 2와 옵션 4 모두 완벽하게 작동합니다 (옵션 3을 시도하지 않았습니다). 옵션 2는 제 기능을 복제합니다 (?). –