私は現在、その一部が招待/登録システムであるアプリケーションを構築しています。現在、システムには「コース」と「教室」があります。したがって、「コース」は何らかのコースであり、「クラスルーム」はコースの特定のインスタンスです。F.ex。1 つのコースがあるかもしれませんが、そのコースの 3 つの教室インスタンスがあり、開始日/終了日が異なり、資料がわずかに異なります/更新されているなどです。これで、「従業員」を「コース」に参加するよう招待できますが、「従業員は「自分自身が登録する特定の「教室」を選択する必要があります。そのため、従業員は招待状が表示される自分のプロフィール ページに移動します。ここで、従業員は招待状をクリックして、登録する特定のクラスルームを選択できます。これにより、明らかに登録が作成されます。しかし、「受け入れられた」ので、招待も取り除く必要があります。現在、「従業員」が「入学」を通じて多くの「教室」を持つように設定しています。また、「従業員」には「招待」を通じて多くの「コース」があります。ただし、従業員が招待状をクリックすると、登録ページ (登録コントローラー) が表示され、そこで登録が作成されるため、これは正しくないようです。ただし、登録が作成されると、招待状は削除する必要があります。したがって、現在、登録コントローラーは登録を作成し、招待を削除できるはずです。これは悪い設計のようです。教室と従業員の関係はかなり満足ですが、従業員と招待状の関係は悪いようです。どのようにしますか?「認められた」からです。現在、「従業員」が「入学」を通じて多くの「教室」を持つように設定しています。また、「従業員」には「招待」を通じて多くの「コース」があります。ただし、従業員が招待状をクリックすると、登録ページ (登録コントローラー) が表示され、そこで登録が作成されるため、これは正しくないようです。ただし、登録が作成されると、招待状は削除する必要があります。したがって、現在、登録コントローラーは登録を作成し、招待を削除できるはずです。これは悪い設計のようです。教室と従業員の関係はかなり満足ですが、従業員と招待状の関係は悪いようです。どのようにしますか?「認められた」からです。現在、「従業員」が「入学」を通じて多くの「教室」を持つように設定しています。また、「従業員」には「招待」を通じて多くの「コース」があります。ただし、従業員が招待状をクリックすると、登録ページ (登録コントローラー) が表示され、そこで登録が作成されるため、これは正しくないようです。ただし、登録が作成されると、招待状は削除する必要があります。したがって、現在、登録コントローラーは登録を作成し、招待を削除できるはずです。これは悪い設計のようです。教室と従業員の関係はかなり満足ですが、従業員と招待状の関係は悪いようです。どのようにしますか?「招待状」を通して。ただし、従業員が招待状をクリックすると、登録ページ (登録コントローラー) が表示され、そこで登録が作成されるため、これは正しくないようです。ただし、登録が作成されると、招待状は削除する必要があります。したがって、現在、登録コントローラーは登録を作成し、招待を削除できるはずです。これは悪い設計のようです。教室と従業員の関係はかなり満足ですが、従業員と招待状の関係は悪いようです。どのようにしますか?「招待状」を通して。ただし、従業員が招待状をクリックすると、登録ページ (登録コントローラー) が表示され、そこで登録が作成されるため、これは正しくないようです。ただし、登録が作成されると、招待状は削除する必要があります。したがって、現在、登録コントローラーは登録を作成し、招待を削除できるはずです。これは悪い設計のようです。教室と従業員の関係はかなり満足ですが、従業員と招待状の関係は悪いようです。どのようにしますか?ただし、招待状は削除する必要があります。したがって、現在、登録コントローラーは登録を作成し、招待を削除できるはずです。これは悪い設計のようです。教室と従業員の関係はかなり満足ですが、従業員と招待状の関係は悪いようです。どのようにしますか?ただし、招待状は削除する必要があります。したがって、現在、登録コントローラーは登録を作成し、招待を削除できるはずです。これは悪い設計のようです。教室と従業員の関係はかなり満足ですが、従業員と招待状の関係は悪いようです。どのようにしますか?
質問する
730 次
2 に答える
0
モデルの属性だけを使用status
して、招待手順を管理してみませんか?
次のモデルを使用します。
Employee
、アプリのユーザー。Course
、従うべきコース;Classroom
、に属するCourse
(多くのコースclassrooms
)。Participation
、従業員、コース、教室の間のリンクを作成します。このモデルは、コースへの参加の進化に応じたステータスになります。invited
従業員が招待されenrolled
たとき、従業員が教室を選択したときなどです。
Participation
モデルのスケルトンは次のようになります。
class Participation < ActiveRecord::Base
attr_accessible :status
belongs_to :employee
belongs_to :course
belongs_to :classroom
#...
validates_uniqueness_of :employee_id, :scope => [course_id, :classroom_id]
end
コースと教室を与えられた従業員の一意性の要件。そして、あなたの選択によっては、教室を考慮せずにコース自体のためだけかもしれません。
Participations
テーブルに一意のインデックスを追加します。
add_index :participation, [employee_id, course_id, classroom_id], unique => true
招待時に、参加インスタンスが作成され(status invited
)、対応するemployee_id
とが空のcourse_id
ままclassroom_id
になります。登録時に、参加はclassroom_id
とステータスで更新されますenrolled
。
それはあなたのニーズに合っていますか?
于 2012-10-27T20:20:33.940 に答える
0
accepted
簡単な解決策は、招待モデルにブールフィールドを追加することです。教室/コースを選択したら、accepted
trueに設定します。次に、プロフィールページで、accepted
falseの場合にのみ招待状を表示します。
于 2012-10-27T20:24:52.047 に答える