2015-09-21 3 views
1

Я устанавливаю gem 'devise' и делаю эшафот 'Пользователь'. Я пытаюсь расширить user_controller. Я создать файл приложения/Декораторы/контроллеры/users_controller_decorator.rb:как использовать декораторы в рельсах4?

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.

пс:

контроллеры/users_controller.rb:

class UserController < ApplicationController 
    load_and_authorize_resource 
end 

ответ

0

просто наследуют DEViSE UsersController - Dont заменить его! :-)

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

u все равно нужно наследовать его. и тогда jsut поместит в него свой собственный материал –

Смежные вопросы