我正在尝试跳过我的订阅控制器的设计身份验证,但无济于事。我的注册控制器和会话控制器skip_before_filter都工作但不是我刚刚添加的订阅控制器。我做错了什么?
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 :(得分:0)
如果我想从auth中排除某些页面,我通常会在我的用户控制器中添加它:
before_filter :authenticate_user!, except: [:sessions, :registrations, :passwords]
除了..之外,它应该排除页面的auth 希望它有所帮助。