如何在 rails4 中使用装饰器?
how use decorators in rails4?
我安装 gem 'devise' 并制作脚手架 'User'。我尝试扩展 user_controller。我创建文件
app/decorators/controllers/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
我 运行 应用程序并通过浏览器创建新用户。但在按下 'submit' 后,控制台不显示“------------”。这表明函数 'find_all_blog_posts' 没有起作用。
请帮助扩展 rails4 中的控制器用户。
ps:
controllers/users_controller.rb:
class UserController < ApplicationController
load_and_authorize_resource
end
只需继承设计用户控制器 - 不要覆盖它! :-)
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
我安装 gem 'devise' 并制作脚手架 'User'。我尝试扩展 user_controller。我创建文件 app/decorators/controllers/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
我 运行 应用程序并通过浏览器创建新用户。但在按下 'submit' 后,控制台不显示“------------”。这表明函数 'find_all_blog_posts' 没有起作用。
请帮助扩展 rails4 中的控制器用户。
ps:
controllers/users_controller.rb:
class UserController < ApplicationController
load_and_authorize_resource
end
只需继承设计用户控制器 - 不要覆盖它! :-)
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