0

移行を実行しようとしています (列を追加して実際に初期化するだけです) が、「ゲスト」ユーザーを使用しているため、宣言型承認(gem) によってアクセスが拒否されます。

これは私が得たエラーメッセージです:

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

もちろん、"guest" ユーザーは config/authorization.rb で定義されたアクセス権をまったく持っていません。さらに、宣言的承認の "using_access_control" オプションでモデル セキュリティを強化しました。

"admin" declarative-authorization のユーザーとして移行を実行するにはどうすればよいですか?

私は過去にこのような問題に直面しており、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ステートメントを使用する必要がある場合、それは何を指す必要がありますか? ( vendor/plugins/ フォルダが空です!!!! )

4

1 に答える 1