Rails设计覆盖注册控制器

时间:2012-08-20 21:16:23

标签: ruby-on-rails ruby devise

我正在与Devise合作,我正试图覆盖注册控制器。

我在这里跟踪帖子没有运气。

这就是我所拥有的:

 class AccountsController::RegistrationsController < Devise::RegistrationsController
  def new
    super
  end
 end

   devise_for :accounts, :controllers => {:registrations => "accounts/registrations"} do
     get "welcome" => "accounts#new", :as => :new_account
   end

我还在视图中创建了一个帐户文件夹,并添加了新视图。

我收到以下错误:

 app/controllers/accounts_controller.rb:1:in `<top (required)>'

2 个答案:

答案 0 :(得分:1)

@Brian是正确的它会起作用,但是你希望你的代码只需要改变:

class AccountsController::RegistrationsController < Devise::RegistrationsController

为:

class Accounts::RegistrationsController < Devise::RegistrationsController

然后在控制器文件夹中创建一个帐户文件夹,并将此文件放在该文件夹中。

答案 1 :(得分:0)

我的情况略有不同,但这解决了这个问题。 Override devise registrations controller

  class RegistrationsController < Devise::RegistrationsController
def new
    @test = "test"
    super
end
  end

我将以下内容添加到我的观点registrations / new.html.erb

然后:

  devise_for :accounts, :controllers => {:registrations => "registrations"} do
  get "welcome" => "registrations#new", :as => :new_account
  end
相关问题