Как добавить дополнительные функции для разработки контроллеров - PullRequest
0 голосов
/ 11 мая 2019

Я использую Devise для аутентификации ученика, и у меня есть другие действия, называемые show_profile и edit_profile, чтобы ученик мог видеть и редактировать свой профиль.

Проблема в том, что контроллер, который я перезаписал, записывает контроллеры Devise, поэтому вход / выход перестает работать. Как я могу сделать свой контроллер расширением для контроллеров Devise?

Если я поставлю эти два:

class Students::RegistrationsController < Devise::RegistrationsController
class StudentsController < ApplicationController

и прокомментируйте это при входе в систему class StudentsController < ApplicationController и это class Students::RegistrationsController < Devise::RegistrationsController после входа в систему.

class Students::RegistrationsController < Devise::RegistrationsController
#class StudentsController < ApplicationController

     private
    def secure_params
      params.require(:student).permit(:name, :father_name, :grand_father_name)
    end
   public
     before_action :authenticate_student!
   def show_profile
        @student = current_student
     end

   def edit_profile
        @student = current_student
   end

   def update_profile
   @student = current_student

    if @student.update_attributes(secure_params)
      redirect_to(:action => 'show_profile',:id => @student.id )
      flash[:notice] = "student edited successfully"
    else
      render('edit_profile')
    end
   end
end

1 Ответ

0 голосов
/ 11 мая 2019

Вы должны сообщить Devise, что вы используете пользовательские настройки в routes.rb Как-то так, подстраивайся под свои нужды.

devise_for :users,
  controllers: {
    registrations: 'student/registrations'
  }

Используйте devise_for :students, очевидно, если так называется ваша модель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...