Skip to content

DCI 學習小祕技

lululala edited this page Feb 3, 2017 · 1 revision

Controller的地方會像這樣

def facebook
  service = UserAuthService.new(params, current_user)
  if service.perform
     sign_in
     redirect_to xxx
  else
   redirect_to xxx
   end
end

第三行define_model_callback 可以自定義關鍵字 觸發 callback 的關鍵字 第六行是自己寫的 helper,不加也沒差,是用來做error 的(new_user_path) permit 就只是做 strong parameters而已 多寫一個方法拿來做 strong parameters 的驗證而已 螢幕快照 2016-10-25 上午1.46.02.png

會有個base context,所有的 context 都是繼承它 前兩條是為了可以加上 call_back
加上那兩條之後,就可以這樣

螢幕快照 2016-10-25 上午1.47.18.png

perform的用意是回傳true or false false 的話可能有多種可能,可以再加上error code 在controller的應用看怎樣的錯誤訊息要做什麼事,使用方法如下 螢幕快照 2016-10-25 上午1.50.42.png

perform 只是執行這個 context