0

私が理解していることから、CanCanは作成および更新アクションをロード時に1回承認し、paramsハッシュが割り当てられたときに再度承認します。

新しい params ハッシュで 2 番目の認証チェックをスキップする方法はありますか? これが問題を引き起こすシナリオを次に示します。

日付が過去の場合に編集をブロックするモデルがあります(基本的に、日付が過ぎるとレコードは履歴になります)。日付がまだ未来のレコードを編集し、検証で処理するのではなく過去の日付を割り当てると、履歴レコードをブロックする機能によって CanCan::Unauthorized 例外が発生します。これは使い勝手が悪いです。これを回避する方法はありますか?

4

2 に答える 2

0

現在の状況はわかりませんが、このようなことができると思います。

can :update, Model do |model|
  persisted_date = model.changes[:date].first
  persisted_date > Date.today 
end
于 2012-05-28T21:34:47.590 に答える