0

我正在尝试运行迁移(只是添加一列并实际初始化它),但声明性授权(gem)拒绝我访问,因为她使用的是“来宾”用户。

这是我收到的错误消息:

No matching rules found for update for #<Authorization::AnonymousUser:0xaf100b8 @role_symbols=[:guest]>

当然,“guest”用户根本没有在 config/authorization.rb 中定义的访问权限此外,我使用声明性授权的“using_access_control”选项强制执行模型安全性

我如何以“管理员”声明授权的用户身份运行我的迁移?

我过去已经遇到过此类问题,并在 stackoferflow 答案中找到了解决方案,但我无法再次找到它。

感谢您的帮助

=== 更新 ===

我找到了一个可能的解决方案,将我的迁移块放入声明性授权 gem中的“without_access_control”方法块中:

class AddDateToProjMesure < ActiveRecord::Migration

  def change
    add_column :proj_mesures, :date_reference, :date

    Authorization::Maintenance::without_access_control do
      ProjMesure.all.each do |proj_mesure|
        proj_mesure.update_attributes! :date_reference => Time.zone.today
      end # ProjMesure.all.each
    end # Authorization::Maintenance::without_access_control

  end
end

但我收到以下错误:

未初始化的常量 Authorization::Maintenance/var/www-opf/opf/db/migrate/20130607103809_add_date_to_proj_mesure.rb:41:in `change'

知道为什么吗?如果我需要使用require语句,它应该指向什么?(供应商/插件/文件夹是空的!!!!)

4

1 回答 1

0

文档说要添加以下内容,但这是错误的,因为 Rails 3 供应商文件夹在 rails 3 和 4 中不再存在:

require "vendor/plugins/declarative_authorization/lib/maintenance"

我在google 小组中问过,他们给了我正确的线路:

require 'declarative_authorization/maintenance'

这个对我有用 !

于 2013-06-19T20:22:54.373 回答