我安装了宝石'设计'并制作脚手架'用户'我尝试扩展user_controller。我创建文件 应用程序/装饰/控制器/ users_controller_decorator.rb:
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 :(得分:0)
只是继承了设计用户控制器 - 不要覆盖它! : - )
<强> 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