Rails有点新鲜。我目前正在使用带有declarative_authorization gem的rails 4.1.8。当我从标准浏览器中调用一个受保护的URL时,我得到了我编程到系统中的预期“未授权”错误。如果我从Postman调用相同的网址,我会得到我的数据。
不知怎的,似乎Rails忽略了declarative_authorization,或者它只是不能用任何标题设置为除了接受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
我错过了什么?或者使用rails 4.1.8无法正确执行declarative_authorization
非常感谢答案 0 :(得分:1)
他们的.travis.yml
表明他们只是在测试Ruby 1.8.7和1.9.3,如果你使用的是更新的红宝石,那么你就是在未知之地。你会做得更好,找到一个更积极维护的宝石。