2016-08-31 13 views
0

私はRails 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 

どのように私は、AJAXを防ぐん。私のユーザーISNかの実行から成功'ログインしていますか?

答えて

0

私はビューを変更し、ユーザーがログオンしている場合にのみクラス「リンク保存」を割り当てます。結果のJavaScriptはハンドラを追加するオブジェクトを検出しません。 jQueryセレクタは何も見つからない場合にうまく動作するため、JavaScriptエラーは発生しません。

<%= 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 %> 
関連する問題