Rails 4.1的 Devise設定

大多的 Devise教學都是在 Rails 3中進行,在 Rails 4跳脫 mass assignment的方式不一樣,以下謹紀錄 Rails4的 Devise設定方式。

安裝devise
在gem file中加入devise


使用 devise產生 user的model
rails generate devise user


手動新增Migration的欄位
first_name, last_name, nickname, address...


建立資料表
rake db:migrate


使用 devise產生 user的 view
rails generate devise:views


將views/devise/registrations底下的form加入自訂欄位
edit.html.erb 還有new.html.erb


跳脫Rails 3限制 mass assignment的作法是在 user model中加入attr_accessible
但在Rails 4則是要在user的controller中加入存取params的private method,加入可讓使用者存取的欄位

def user_params
     params.require(:user).permit(:username, :email, :password, :password_confirmation)
   end

Rails 4的 Strong parameters說明:https://github.com/rails/strong_parameters


接著使用migration開始建立user跟其他資料表的關係
rails generate migration add_user_relations_to_other_tables
add_column & add_index 完成後 rake db:migrate

留言