8

我知道如何覆盖默认控制器并且它正在工作,但现在我需要在 Registrations 控制器中添加新操作。

我需要更新用户字段。我需要在此表单中添加名字和姓氏,但我不想使用标准编辑页面,因为它将是单独的页面。

所以我需要其他页面。我的注册文件夹中有 paypal..html.erb,但我无法通过 regustrations 控制器中的操作来呈现它。

贝宝操作:

class RegistrationsController < Devise::RegistrationsController

def paypal  
end 
...
end

路线.rb:

 devise_for :users, :controllers => {:registrations => 'registrations', :sessions => 'sessions'} do
    match 'paypal' => 'registrations#paypal'
  end

但不知何故,它呈现新的注册文件。这是错误:

   NoMethodError in Registrations#paypal
   Showing C:/1508/app/views/devise/registrations/new.html.erb where line #22 raised: 

我如何使用更新表单来执行此操作以及我做错了什么?

4

2 回答 2

1

我将此添加到我的路线中以使其正常工作

devise_scope :user do
  get 'paypal(/:id)', :action => 'paypal', :controller => 'user/registrations', :as => 'paypal'
end
于 2014-03-13T00:54:04.407 回答
0

您的问题似乎有点不清楚,但是为什么不显式渲染视图?

def paypal
    render 'devise/registrations/paypal' 
end

如果您有多种类型的用户,最好将路径和路由分开。

https://github.com/plataformatec/devise/wiki/How-To%3a-Customize-routes-to-user-registration-pages

于 2013-09-05T08:10:01.027 回答