0

我们在 CREATE 和 UPDATE 上的声明式身份验证出现错误。我们不确定为什么,因为在错误中它显示没有用户经过身份验证,并且会话以某种方式丢失:

`Authorization::NotAuthorized in CartypesController#update

没有为 # (角色 [:guest]、特权 [:update]、上下文 :cartypes)找到匹配的更新规则。`

角色“backoffice”在 authentication_controller.rb 中具有权限:has_permission_on :cartypes, :to => [:index, :show, :new, :create, :edit, :update, :destroy, :delete]

在 stackoverflow 中有一个类似的问题:Link to Stackoverflow Question

我们是 Rails 新手,第一次尝试过,其他显示和列表工作正常..(GET 操作)

任何帮助表示赞赏...谢谢。

编辑:我们能够解决这个问题,因为我们在讨论模型安全性时发现关于“声明性授权”的文档不是那么清楚!如果您仔细阅读,在使用模型安全性时需要将:## Heading ##Authorization.current_user 设置为请求的用户(在 application_controller.rb 中)。对于 rails-n00bs 可能不太清楚......

4

1 回答 1

0

authenticity_token您是否在请求中包含参数?默认情况下,Rails 强制 PUT、POST 和 DELETE 要求具有此令牌以防止跨站点请求伪造。

如果不包含它,Rails 会自动重置 session 以防止 CSRF 攻击。

查看了解 Rails Authenticity Token。费萨尔解释得很好。

http://guides.rubyonrails.org/security.html

于 2011-09-17T15:17:36.333 回答