Liz's Blog

GemGem大亂鬥#2:Devise 會員登入系統

| Comments

最近在重複練習Rails101,剛好想到當時有遇到一個Devise版本不同,所以設定strong parameter上有些微差異,於是來紀錄一下,完整課程請大家直接看Rails101會更好喔~

1.安裝gem "devise"

Gemfile
gem "devise"

或者

Gemfile
gem "devise", "~>3.4.1"

註:目前devise版本已經到4.0以上,如果是安裝前者,後面strong parameter則要以devise 4.0的版本為主。

2.終端機:bundle install

3.終端機:rails g devise:install

4.終端機:rails g devise user

5.終端機:rake db:migrate

6.終端機:rails g devise:views

7.終端機:rails s

8.中間省略客製化設定name的步驟,請參考課程設定即可。

9.主要差異是在〈加入strong parameters與devise整合的hack〉和〈新增"帳號設定"功能,並能修改自己帳號的name〉:
(1)使用Devise 3者:

app/controller/application.rb
before_action :configure_permitted_parameters, if: :devise_controller?
 
  protected

def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:name, :email, :password, :password_confirmation) }
    devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:name, :email, :password, :password_confirmation, :current_password) }
end

(2)使用Devise 4者:

app/controller/application.rb
before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up) do |u|
      u.permit(:name, :email, :password, :password_confirmation)
    end
    devise_parameter_sanitizer.permit(:account_update) do |u|
      u.permit(:name, :email, :password, :password_confirmation, :current_password)
    end
  end

【延伸閱讀】

  1. GemGem大亂鬥#1:Bootstrap
  2. GemGem大亂鬥#2:Devise 會員登入系統
  3. GemGem大亂鬥#3:googlecharts 簡易圖表工具
  4. GemGem大亂鬥#4:Devise 重設密碼設定
  5. GemGem大亂鬥#5:OpenSSL Errors
  6. GemGem大亂鬥#6:deprecation warnings with sprockets 3.7.0

Comments

comments powered by Disqus