0

これが私のユースケースです。箇条書きになっているので、わかりやすく簡単です。

  • 管理者ユーザーは、ユーザー タイプでシードされ、「管理者」ロールが与えられます。
  • その管理者ユーザーは、新しい生徒と新しい教師にサインアップできます。どちらもモデルです。
  • 管理者ユーザーが新規ユーザーのサインアップページに移動します(私はDevise主にgemテンプレートを使用しています.)
  • 新しいユーザーのタイプをラジオ ボックスで選択します。学生または教師のいずれかです。
  • Adminのタイプが User であるため、ここで使用されているSubmitのはもちろんコントローラです。Users
  • createしかし、ここでは、Users コントローラーメソッドを使用したくありません。create新しい生徒または教師のモデルが必要です。どちらも独自のコントローラーと独自のcreateメソッドを持っていますが、ユーザー コントローラーからそれらを呼び出すにはどうすればよいでしょうか? または、それが悪い習慣である場合、より一般的な私の質問は、ユーザーモデルの代わりにこれらの新しいモデルの1つを作成するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

2

私があなたの質問を正しく理解していれば、ラジオボックスから新しいユーザーのタイプのパラメーターを確認し、プライベートメソッドを呼び出してパラメーターを渡すだけで、パラメーターに応じて新しいリソースが作成されます。

例えば

という名前の params キーがあるとしますentity。あなたは投稿しますcreate#users

def create
  if create_new_resource(params)
    redirect_to some_path
   else
    render 'new'
  end
end

private

def create_new_resource(params)
   "#{params[:entity].create(params)}" 
end

開始バージョンとしてのみ。いくつかの変更も行う必要があります

于 2013-04-20T21:07:32.490 に答える