大多的 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
安裝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
留言
張貼留言