考案する前は、ユーザー向けの情報を含む Participant というモデルがありました。コントローラーとそれに付随する一連のビューがありました。devise を追加し、ユーザー レコードに Participant を使用するように依頼しました。それはうまくいくように見えました。
私の世界では、参加者を作成するルートは次のようになりました。参加者モデルには、belongs_to :program が既にあります。
私のルートは次のようになります。
devise_for :participants
root to: 'programs#index'
resources :programs do
resources :participants do
resources :rounds do
get 'survey' => 'rounds#present_survey'
put 'survey' => 'rounds#store_survey'
end
end
resources :questions
resources :rounds
member do
get 'report' => 'reports#report'
end
end
物事の構造について少し混乱しています。デバイスエンジンからすべてのビューをアプリに取り込むと、ビュー/デバイス/登録/編集と新規が取得されます。/view/participants/edit と new にしたいです。
そして、ルートとそのすべてがそれに応じて動作することを望みます。新しい参加者を作成すると、それがどのプログラムに含まれているかルートからわかり、program_id を正しく設定できます。ユーザーがログインすると、「管理者」でない限り、./program/3 のようなルートにリダイレクトされます。
これにアプローチする方法がわかりません。ヒントを教えてください。
-- ピト