1

current_userの役割をチェックして、権限のないユーザーによる編集から一部の属性を保護するヘルパーを作成しました。

検証は、コンソールを使用しているとき以外は正常に機能します。明らかにユーザーはいませんが、それでも検証を試みており、次のようになります。

 NoMethodError: undefined method `has_role?' for nil:NilClass

この検証をバイパスするにはどうすればよいですか、または私が行っていることを達成するためのより良い方法はありますか?

ロケーションモデル:

  validate :check_archived_status, :on => :update

  def check_archived_status
    unless UserHelper.staff
      if self.archived == false
        if stuff == otherstuff
          do some other stuff
        end
      end
    end    
  end

UserHelper:

def self.staff
  staff = User.current_user.has_role?('Super', 'Admin', 'Tech')
end
4

1 に答える 1

0

current_userコンソールにランダムなユーザーを入力できませんか?
このように:current_user = User.last、したがって、検証ではエラーは発生しません。

于 2012-09-11T21:58:47.550 に答える