ユーザー、プロジェクト、およびユーザー特権の 3 つのモデルを使用しています。userprivilege モデルは、user_id、project_id、および accessLevel 値で構成されます。ユーザー モデルとプロジェクト モデルは、userprivilege と「has_many」の関係を持ち、相互に「has_many, through」の関係を持ちます。
ユーザーがプロジェクトを作成すると、対応するエントリが userprivileges テーブルに作成されます。ユーザーが別のユーザーとプロジェクトを共有する状況で、このようなエントリを作成する方法がわかりません。この状況では、ユーザーはプロジェクト ページにアクセスし、リンクをクリックしてプロジェクトへのアクセスを共有し、ターゲット ユーザーの電子メールを指定します。
この状況を UserprivilegesController の「新しい」アクションに関連付けています。「作成」アクションで、プロジェクトを共有しているユーザー オブジェクトにアクセスできますが (電子メール ID を使用)、共有されているプロジェクトのプロジェクト ID を取得する方法がわかりません。ユーザーがプロジェクト ページにアクセスして共有アクセス リンクをクリックしたときに、プロジェクト ID を保存する方法はありますか?
ありがとう。
Aldo さんのコメントのおかげで、この問題を解決できました。しかし、関連する質問があります: routes.rb ファイルを使用してこれにアプローチすることは可能ですか? プロジェクト ルートに Userprivilege アクションのルートを含めることはできますか? 例として、/projects/1/userprivileges/new または /projects/1/userprivileges/1/edit のようなものです。次に、URI からプロジェクト ID を取得できました。ただし、関連するプロジェクトからのみユーザー権限にアクセスできるように制限が必要になるため、/projects/2/userprivileges/1/edit のようなものは許可されません。その制限をどのように実装できますか?