0

出典: https://github.com/inossidabile/protector/issues/10

結合テーブルに基づいて権限を設定できるようにしたいと考えています。

それで...

Post.restrict!(current_user).joins(:category)

この状況では、現在のユーザーはカテゴリに直接アクセスできませんが、投稿を通じてカテゴリを取得できます。どうすればこれを達成できますか? デフォルトのカテゴリスコープを適用していますが、結合テーブルに基づいて条件付きにする方法がわかりません。

4

1 に答える 1

0

https://github.com/inossidabile/protector#self-aware-conditionsをよくお読みください。ご覧のとおり、制限ブロックの 2 番目のパラメーターを受け入れることができます。内部では、そのプロパティまたはネストされた関連付けを取得できます。したがって、あなたの場合は次のようになります。

protect do |user, post|
  if post.try(:category) && post.category.anything == 'foobar'
    # Whatever you want to allow or disallow here
  end
end
于 2013-07-09T07:33:41.103 に答える