1

Rails 3アプリでdeviseを使用すると、後で登録する方法をカスタマイズする方法についてwiki/docsを読んでいます。確認可能なモジュールを使用していますので、after_inactive_sign_up_path_forをオーバーライドする必要があります。Rails 3/deviseはカスタムコントローラを無視しているようです

私はそれをすべてやったと思うが、それは私のカスタムコントローラを完全に無視していて、サインアップ後もroot_pathにルーティングしている。ナットを運転する。

私の登録はUserモデルを使用していますが、私はgenerateタスクを使用してdeviseのビューをコピーしました。私はそれらを移動した場合のビュー/登録が考案し、それは私のコントローラ

を「気づき」されていないようですので、私は私のルートでこれを持って、戻ってデフォルトのビュー(宝石に私は推測)にフォール:

devise_for :users, :controllers => { :registrations => "registrations" } 
match 'sign_up_done' => 'home#sign_up_done', :as => :after_sign_up 
ここで

は私のコントローラである:(コントローラ/ registrations_controller.rb)

class RegistrationsController < Devise::RegistrationsController 
    def after_inactive_sign_up_path_for(resource) 
    after_sign_up_path 
    end 
    def after_sign_up_path_for(resource) 
    after_sign_up_path 
    end 
end 

(確認できる使用して、念のためafter_sign_up_path_forを追加しました)

ちょうどCOMPLているようです私のコントローラーを無視して、命名が間違っていますか? 入力いただきありがとうございます!

答えて

0

あなたのフォルダ構造に問題があると思われます。

app/controllers/devise/registrations_controller.rb 
app/views/devise/registrations/new.html.erb 
app/views/devise/registrations/edit.html.erb 

(それは宝石のフォルダと同じです)、それは宝石のフォルダ内に宣言されているように、コントローラファイルは同じになります:このような構造をしてみてください

#app/controllers/devise/registrations_controller.rb 

# NOT: class RegistrationsController < Devise::RegistrationsController , 
# since you are "overwriting" it. 
class Devise::RegistrationsController < DeviseController 

    def after_inactive_sign_up_path_for(resource) 
    #... 
    end 
end 
+0

私が手にこの設定で:期待.../app/controllers/devise/registrations_controller.rbを定義してDevise :: RegistrationsController – bobomoreno

+0

私の回答を更新 –

+0

私は最終的に自分のルートファイルに「devise_for:users」という行が重複していることを知りましたジェネレータによって追加される。私の見解がスクロールされているのを見て、私はそれを見ませんでした。これは、下の行で定義されているので、私のカスタムコントローラを無視していた理由です。 – bobomoreno

関連する問題