iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
1
自我挑戰組

Ruby on Rails 新手的30個問題!系列 第 17

Day_17 devise view? & helper?

嗨!各位朋友大家好,打給後,歹嘎吼,胎尬喉,我是阿圓,今天進入了第17,存貨快用完了,只好請出這張one piece:

昨天講完了 devise 的 controller 跟 strong_parameter,今天要來介紹生出view的頁面,以及使用 devise 時,常用的 helper 或 method:

建立devise view

使用$ rails g devise:views 指令 ,會把所有的view都長出來;但Devise 預設是所有model共用一組views,若想特別指定某個model的view:

# 在config/initializers/devise.rb 
config.scoped_views = true
$ rails generate devise:views users


預設會有這麼多!

若不想做出上面那麼多,可以用-v來指定要哪一個模塊(module)的view:

$ rails generate devise:views -v registrations confirmations

那就只會長出下面這樣:


好用的helper

手冊
devise 提供了很多helper,可以參閱上面手冊,這邊列出幾個比較常用的

  1. authenticate_user! 可驗證使用者是否有權限,否則轉址
  2. user_signed_in? 會去檢查此時使用者是否有session,回傳布林值
  3. current_user 撈出現在的使用者資料
  4. user_session 得到user現在的session

可以在 controller 裡使用的方法

  1. after_sign_in_path_for(resource_or_scope) ⇒ Object
  2. after_sign_out_path_for(resource_or_scope) ⇒ Object 定義使用者登入、登出後,轉址去哪裡
  3. devise_controller? ⇒ Boolean 判斷controller是否為devise_controller
  4. devise_parameter_sanitizer ⇒ Object 上面兩個配合修改permit使用,請參考下方strong_parameters
  5. devise_group(group_name, opts = {}) ⇒ Object
    可以將不同的 model 群組起來,example:
Class BlogsController 
    devise_group :blogger, contains: [:user, :admin]

看到這裡,是不是覺得 devise 超好用啊,就可以省下一堆的時間。
好啦,devise就介紹到這邊(我好像越來越混了QQ),明天我們繼續回到部落格的部分,感謝各位看到這邊,若有任何建議,請各位不吝指教!我們明天見!


上一篇
Day_16 devise strong_parameters & controller? (2)
下一篇
Day_18 action text?
系列文
Ruby on Rails 新手的30個問題!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言