在设计之前,我有一个名为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
答案 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" }
希望它会有所帮助