2015-09-21 93 views
1

我安裝gem'devise'並製作腳手架'User'。我嘗試擴展user_controller。我創建文件 應用程序/裝飾/控制器/ users_controller_decorator.rb:如何在rails4中使用裝飾器?

UsersController.class_eval do 
    after_filter :find_all_blog_posts, :only => [:create] 

    protected 
    def find_all_blog_posts 
     p '-------------------------------' 
     binding.pry 
    end 
end 

我運行的應用程序,並通過瀏覽器創建新的用戶。但按'提交'後控制檯不顯示'-------------'。這表明函數「find_all_blog_posts」不起作用。

請幫助擴展控制器用戶在rails4。

PS:

控制器/ users_controller.rb:

class UserController < ApplicationController 
    load_and_authorize_resource 
end 

回答

0

只是繼承了色器件userscontroller - 不要忽略它! :-)

users_controller.rb

UsersController < Devise::UsersController 

    after_filter :find_all_blog_posts, only: [:create] 

    protected 
    def find_all_blog_posts 
    binding.pry 
    end 
end 

的routes.rb

devise_for :users, controllers: { registrations: "users_controller" } 

,更具可讀性的東西 https://github.com/plataformatec/devise#configuring-controllers

+0

感謝。但我的users_controller現在已經有了一個類。我更新我的問題,請參閱'PS:' - 塊 – stackow1

+0

你仍然需要繼承它。然後把你的自定義的東西放進去 –

相關問題