移行を実行しようとしています (列を追加して実際に初期化するだけです) が、「ゲスト」ユーザーを使用しているため、宣言型承認(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/ フォルダが空です!!!! )