オブジェクトのuser_idが管理者ではないアカウントに関連付けられている場合、新しいレコードオブジェクトを無効にしようとしています。Railsは、モデルの管理者であるレコードを作成するユーザーを検証できますか?
モデルでは、作成するオブジェクトがuser_id.admin == trueの場合、検証チェックを行いたいと思います。どちらもこれらのソリューションの
は動作:
validates :user_id, User.find(:user_id).admin?
before_save :user_is_admin, User.find(self.user_id).admin?
だから、私の質問があり、私は彼らが管理している場合、ユーザーとのチェックを検索し、エラーをスロー検証を書くのですかそうでない場合?
P.S.私はすでにbefore_actionとしてコントローラの管理者チェックを行っていますが、管理者以外のユーザが何らかの方法で作成して管理していれば、オブジェクトを無効にしたいと思います。
これはベストプラクティスではない場合でも、レールで有効性チェックを作成する方法についてもう少し詳しく知りたいと思います。
Hmmm。それはモデルでうまくいくように見えます。 "ActiveRecord :: RecordNotFound: 'id' = のユーザーを見つけることができませんでしたapp/models/user/user/post.rb:12: 'creator_is_admin '内 test/models/post_test.rb:17:'ブロック内の' " 私は正しい方法でそれをやっていなければなりません:) –
Jeremy