declarative_authorization Gem 无法处理 JSON/XML 请求

declarative_authorization Gem not working on JSON/XML requests

对 Rails 有点陌生。我目前使用 rails 4.1.8 和 declarative_authorization gem。当我从标准浏览器调用我的受保护 URL 之一时,我得到了我编入系统的预期 'not authorized' 错误。如果我从 Postman 调用相同的 url,我会得到我的数据。

不知何故 Rails 似乎忽略了 declarative_authorization,或者它无法处理任何将 header 设置为其他任何设置然后接受 text/html .

我的代码如下: 样品控制器。我正在使用 filter_access_to :all

class ShiftsController < ApplicationController
protect_from_forgery with: :null_session 
filter_access_to :all

 def index
     qrtStr = 'shift_date between :from and :end'
     if params.has_key?(:from)
       parm = {:from => params[:from]}
     else
       parm = {:from => (Time.now.midnight - 30.day)}
     end

在authorization_rules.rb中:

authorization do

role :superadmin do
  has_omnipotence
end

role :admin do
end

role :guest do
  has_permission_on :user_sessions, :to => [:new, :create]
end
role :calendarUser do
  includes :baseUser
  has_permission_on :shifts, :to => [:index, :show]
  has_permission_on :calendar, :to => [:index]
end

routes.rb:

resources :shifts, except: [:new, :edit] do
  patch 'submit', on: :member
  patch 'acquire', on: :member
end

我错过了什么??或者 declarative_authorization 不能与 rails 4.1.8 一起正常工作??

非常感谢

他们的 .travis.yml 表明他们只针对 Ruby 1.8.7 和 1.9.3 进行测试,如果您使用的是较新的 ruby 那么您就在未知之地。你最好找一个维护得更积极的 gem.