0

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

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

我希望路线和所有这些都相应地表现出来。当我创建一个新的 Participant 时,我会从路由中知道它在哪个 Program 中,并且能够正确设置 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 回答