ruby on rails - Customizing devise controller -


i trying change behaviour of 1 devise controller method. here says can running rails generate devise:controller users.

however doing generated commented code bunch of super calls. if don't know super methods do, how supposed edit lines of code want change?

the modification want simple: if there no admin user yet (none role=admin found), user's role set admin, else, normal user. thought in case after_filter solution, did this:

class usercontroller < devise::registrationscontroller     after_filter :set_role, only: [:create]      protected     def set_role         admin_user = user.find_by_role(user::admin_role)         if admin_user.nil?             @user.role = user::admin_role         else             @user.role = user::default_role         end         @user.save     end end 

my routes:

devise_for :users, controllers: { users: "users" } 

however, method not being executed. why? can do?

i think need overriding registrations controller:

devise_for :users, :controllers => {:registrations => "registrations"} 

then controller:

controllers/registrations_controller.rb

class registrationscontroller < devise::registrationscontroller    def create     build_resource(sign_up_params)      admin_user = user.find_by_role(user::admin_role)     if admin_user.nil?       resource.role = user::admin_role     else       resource.role = user::default_role     end      if resource.save       if resource.active_for_authentication?         set_flash_message :notice, :signed_up if is_navigational_format?         sign_up(resource_name, resource)         respond_with resource, :location => after_sign_up_path_for(resource)       else         set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_navigational_format?         expire_session_data_after_sign_in!         respond_with resource, :location => after_inactive_sign_up_path_for(resource)       end     else       clean_up_passwords resource       respond_with resource     end   end end 

Comments

Popular posts from this blog

java - Oracle EBS .ClassNotFoundException: oracle.apps.fnd.formsClient.FormsLauncher.class ERROR -

c# - how to use buttonedit in devexpress gridcontrol -

nvd3.js - angularjs-nvd3-directives setting color in legend as well as in chart elements -