使用具有略微不同的注册流程的设计

时间:2012-11-28 01:38:06

标签: ruby-on-rails ruby authentication devise

在设计之前,我有一个名为Participant的模型,其中包含用户信息。它有一个控制器和一组视图。我添加了设计,并要求它使用Participant作为用户记录。这似乎工作得很好。

现在,在我的世界中,创建参与者的路径如下所示:./ program / parpartant / new,因为除了单个“管理员”之外的任何参与者都是在单个程序中创建和使用的。参与者模型已经有一个belongs_to:程序。

我的路线看起来像这样:

  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 / participant / edit和new。

我想要路线和所有相应的行为。当我创建一个新的参与者时,我将从路由中知道它所在的程序,并能够正确设置program_id。当用户登录时,除非他们是“admin”,否则我希望将它们重定向到./program/3之类的路径。

我不知道如何处理这个问题。你能给我一些提示,我们将不胜感激!!

- Pito

1 个答案:

答案 0 :(得分: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" }
希望它会有所帮助