Devise に単一の User モデルを作成させ、異なるロールを別のモデルにしようとしています。私の User モデル (rails g devise User から) には、電子メール、名、姓、および役割フィールドがあります。
役割は、管理者、観客、競技者です。そこで、すべて User モデルを継承する管理者、観客、および競合他社のモデルを作成しました。
デバイスと複数の「ユーザー」モデルからのトップの回答に従い、ユーザーを作成できます。ただし、競合他社のモデルの移行には、コンテスト名や場所など、他のモデルには必要のない他の情報も含まれています。Competitor.create() を実行し、デバイス ユーザーを作成するために必要な情報を入力すると、コンテストの名前と場所について競合モデルに null 制約があるにもかかわらず、ユーザーがデータベースに格納されます。
Spectator.all を実行すると、最近作成された競合他社のデータが表示されます。
私の質問は、コンテストの名前と場所が提供されない限り、競合他社のユーザーが作成されないように、これをどのように設定すればよいかということです。
もう 1 つの質問は、Spectator.all を実行すると、競合他社の情報が表示されるのはなぜですか?