0

考案する前は、ユーザー向けの情報を含む 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 のようなルートにリダイレクトされます。

これにアプローチする方法がわかりません。ヒントを教えてください。

-- ピト

4

1 に答える 1

1

あなたは次のように何かをしなければなりません

class ParticipantsController < Devise::RegistrationsController

  def new
    ... # your code of new
  end

  def update
    ... # your code of update
  end
end

そしてルートで

devise_for :users, :controllers => { :registrations => "participants" }

それが役立つことを願っています

于 2012-11-28T02:07:07.273 に答える