# Gemfile
gem "devise", "~> 4.0.0 "
bundle install
# 設定 Devise
# 安裝 devise 必須檔案
rails g devise:install
# 產生一個有登入功能的 user model
rails g devise user
rake db:migrate
# devise 支援客制修改 template,可以用這行叫出(原本是隱藏的) devise views,以便未來修改
rails g devise:views
重開 rails server
另,Devise 預設其他methods
before_filter :authenticate_user!
放在controller,會自動驗證使用者是否登入,才能使用某些actions
if yes (已登入 ) => 繼續下面的程序
if no (未登入)=> 轉到登入畫面
before_action :authenticate_user!
上行表示全部action都要使用者登入才能動作
before_action :authenticate_user!, only: [:new, :edit, :create, :update, :destroy]
上行表示上面五個action要使用者登入才能動作
user_signed_in?
看一個用戶有沒有登入
current_user
找到現在登入的用戶
你可以在view裡使用current_user來判斷是否有使用者
如<% if !current_user %>
# !variable(跑出布林值的反值,這裡判斷有沒有使用者)
也可以用它來捉到使用者的欄位,如current_user.name
如<%= current_user.user %>
user_session
看用戶的session
Devise 的 Github
https://github.com/plataformatec/devise
參考:Rails 101、10天學會Ruby on Rails :Web 2.0 網站架設速成
沒有留言:
張貼留言