最初的注册页面

STEP 1 增加 Devise 的 views 页面

rails g devise:views 

安装Devise之后, 没有自带views页面,现在打开 app/views/devise

STEP 2 增加 username 栏位到 user Model

STEP 2-1

rails g migration add_username_to_user 

STEP 2-2 在新增的db/migrate档案中把 username 这一栏加入到user Model

add_column :users, :username, :string 

STEP 2-3 rake db:migrate

user Model已经有username栏位

STEP 3 修改注册页面

STEP 3-1 新增name和管理者权限栏位

app/views/devise/registrations/new.html.erb
<%= f.input :username, required: true %>  
<%= f.input :is_admin, as: :radio_buttons, collection:  [['Individual', false], ['Company', true]], required: true %>

这时注册页面为下图

STEP 4 实做新增功能

STEP 4-1 新增文件夹users

mkdir app/controllers/users

STEP 4-2 在users文件夹下新增文档registrations-controller 用来控制注册动作

touch app/controllers/users/registrations_controller.rb 

STEP 4-3 修改注册功能

app/controllers/users/registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
  before_filter :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:is_admin,:name])
  end
end

STEP 4-4 修改routes,设定注册时使用上面修改的controller

config/routes.rb
- devise_for :users  
+ devise_for :users, :controllers => { :registrations => "users/registrations" }

STEP 5 调整navbar导航栏

STEP 5-1 改email为username

app/views/common/_navbar.html.erb
-  Hi!, <%= current_user.email %>
+  Hi!, <%= current_user.name %>

参考教程来自: http://xbearx1987-blog.logdown.com/posts/1707961-how-to-devise-new-name-field-and-administrator-rights