2016-12-16 7 views
0

私のサブスクリプションコントローラの認証をスキップしようとしていますが、役に立たないです。私の登録コントローラとセッションコントローラskip_before_filterはどちらも動作しますが、最近追加したサブスクリプションコントローラは動作しません。私は間違って何をしていますか?Rails - デビット認証をスキップすると動作しない

class V1::SubscriptionsController < ApplicationController 
skip_before_filter :authenticate_user! 
skip_before_filter :verify_authenticity_token, if: :json_request? 


def create 

    @subscription = Subscription.new(subscription_params) 

    if @subscription.save 
     render json: @subscription, status: :created 
    else 
     render json: @subscription.errors, status: :unprocessable_entity 
    end 
end 

private 

def subscription_params 
    params.require(:subscription).permit(:subscription_email) 
end 
end 

私のアプリケーションコントローラ

class ApplicationController < ActionController::API 
    include CanCan::ControllerAdditions 
    include ActionController::RespondWith 
    include ActionController::Serialization 

    acts_as_token_authentication_handler_for User 

    rescue_from CanCan::AccessDenied do |exception| 
    respond_to do |format| 
     format.json { render nothing: true, status: :forbidden } 

    end 
    end 
end 

そして、私のルート

Rails.application.routes.draw do 

devise_for :users, skip: [:sessions, :registrations, :passwords] 

    api_version(module: "V1", header: { name: "Accept", value: "application/vnd.rolotext.json; version=1" }) do 
    devise_scope :user do 
     post 'registrations' => 'registrations#create' 


     post 'sessions' => 'sessions#create' 
     delete 'sessions' => 'sessions#destroy' 

     post 'passwords' => 'passwords#create' 
     patch 'passwords' => 'passwords#update' 
     post 'passwords/check_email' => 'passwords#check_email' 
    end 

    get '/me' => "users#me" 
    patch '/me' => 'users#update' 
    delete '/me' => 'users#destroy' 


    resources :cards, except: [ :new, :edit] 
    patch '/logos' => 'logos#update' 
    resources :logos, except: [ :new, :edit, :destroy ] 
    resources :uploads 
    post '/subscriptions' => "subscriptions#create" 

    end 
end 

すべてのヘルプはムーチョが

答えて

0

をいただければ幸い私が欲しい場合、私は通常、私のユーザーのコントローラでこれを追加しています一部のページを認証から除外する:

before_filter :authenticate_user!, except: [:sessions, :registrations, :passwords]

例外を除いて、ページの認証を除外する必要があります。

+0

私はそれを試みましたが、残念ながらそれは動作しません。前にも触れたように、他のコントローラは認証をスキップする際に問題はなく、authenticate_userに例外として表示されません!フィルタの前に – duwerq

+0

最後に、私はその例外をアプリケーションコントローラに追加しようと考えていると思います。 – liborza

関連する問題