8

デフォルトのコントローラーをオーバーライドする方法はわかっており、機能していますが、新しいアクションを登録コントローラーに追加する必要があります。

ユーザー フィールドを更新する必要があります。このフォームに名と姓を追加する必要がありますが、別のページになるため、標準の編集ページを使用したくありません。

だから私は他のページが必要です。登録フォルダーに paypal..html.erb がありますが、登録コントローラーのアクションからレンダリングできません。

ペイパルのアクション:

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 に答える