2016-08-31 2 views
0

레일 4.2.7을 사용하고 있습니다. 나는이 내 페이지에서내 사용자가 로그인하지 않은 경우 Ajax가 실행되지 않도록하려면 어떻게해야합니까?

<%= link_to image_tag('disk.png', :alt => 'Save'), my_object_create_path(:id => my_object.id), :class => 'link-save', title: 'Save', :remote => true %> 

을 이미지에 사용자가 클릭을하는 작업을한다 처리하기 위해 설정 한 후, 나는 ... 컨트롤러 반환 후 전화를 처리하기위한이 커피 스크립트가

$('a.link-save').on 'ajax:success', -> 
    $(this).closest('td').text('Saved') 

. 문제는 내가 내 아약스 방지하려면 어떻게 ... 내 사용자가 내 컨트롤러이가 로그인하지 않은 경우 위의 실행하지 않으려는,

respond_to do |format| 
    if logged_in? && my_object.save 
    flash[:notice] = 'Saved successfully' 
    format.json { render json: my_object, status: :created } 
    elsif !logged_in? 
    format.js { render js: "alert('not logged in');" } 
    else 
    format.json { render json: my_object.errors, status: :unprocessable_entity } 
    end 
end 

입니다 : 실행에서 성공을하면 내 사용자 ISN ' 로그인 했습니까?

답변

0

사용자가 로그온 한 경우에만보기를 수정하고 "링크 저장"클래스를 할당합니다. 결과 JavaScript는 처리기를 추가 할 객체를 찾지 않습니다. jQuery 선택기가 아무 것도 찾지 못할 경우 잘 작동하므로 자바 스크립트 오류가 발생하지 않습니다.

<%= link_to image_tag('disk.png', :alt => 'Save'), 
      my_object_create_path(:id => my_object.id), 
      :class => logged_in? ? 'link-save' : '', 
      title: 'Save', :remote => true %> 
관련 문제