2015-09-21 89 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

你仍然需要继承它。然后把你的自定义的东西放进去 –

相关问题