1

私の Rails アプリケーションでは、ユーザーは参加者を通じて多くのプロジェクトを持っています。

現在、承認には CanCan を使用しています。私はいくつかの調査を行いましたが、次のことを行う方法がよくわかりません。

私のability.rbファイルでは、プロジェクトのユーザーに :manage 機能を提供したいと考えています。現在、次のようになっています。

can :manage, Project if user.has_role? :silver

私の参加者テーブルには、user_id と project_id があります。参加者テーブルを介してプロジェクトに関連付けられているユーザーにのみ管理機能を与えるにはどうすればよいですか?

4

1 に答える 1

0

私は現在、解決策として以下を使用しています。devise または cancan にネイティブなソリューションを使用することをお勧めします。

モデルで。

def is_participant?(participant)
  self.participants.exists?(:project_id => participant)
end

そして私の見解では。

<% if current_user.is_participant?(@project.id) %>
于 2012-12-26T23:09:50.577 に答える