---
# System prepended metadata

title: 工作空間troubles
tags: [Stork 開發日誌]

---

# 工作空間troubles

[![hackmd-github-sync-badge](https://hackmd.io/gGivxzCKTaa4KvIEt53ihQ/badge)](https://hackmd.io/gGivxzCKTaa4KvIEt53ihQ)


## 登入登出問題
* 看不到devise生成的helper或controller設定內容。
* 因devise已在route中生成路徑devise_for :users。這造成登入後會自動跳回首頁，但必須改跳到自訂的網頁（工作空間列表）
    * 解決方式：在routes設定，見 https://stackoverflow.com/questions/7638920/rails-redirect-after-sign-in-with-devise
>       namespace :user do
    >       root :to => "spaces#list"
>       end
* 承上，也須設定「註冊後」跳到new_space_path（新增工作空間），暫未成功
    https://stackoverflow.com/questions/4987841/devise-redirect-after-sign-up
    https://stackoverflow.com/questions/8003347/overriding-devise-after-sign-up-path-for-not-working
* 登出成功，但就逗留原地。
    * 解決方式：在routes設定(現無效)，見 https://stackoverflow.com/questions/6514421/redirecting-devise-after-sign-out
>def after_sign_out_path_for(resource_or_scope)
>request.referrer
>end
* 一度登出刪除session後，也不能在layout放<%= current_user.email %>了（登入前會錯誤）。* 
* 找到　<%= current_user.email %>　可以印出登入的email帳號，但是從哪的helper或controller生成的？這裡不能用龍哥上課的範例　<%= print_out_session %>　是少寫了什麼。
* 遺忘密碼寄信功能的　ArgumentError in Devise::Passwords#create　錯誤
> 查 devise action mailer
    
### 區別瀏覽/增改權
* 拿到號碼牌session才能登入，但是我看不到devise的這個過程。
* 限定特定頁面登入才能用（新增／編輯／刪除自己的工作空間）， before_action :check_login!加在哪個controller找不到（同上一條）。若打開appliction_controller打開before_action :authenticate_user!，會讓未登入/登出後的 <%= current_user.email %>錯誤。
    * 自訂controller，在routes加設定，未成功  devise_for :users :controllers: { :sessions => 'users' }
    https://stackoverflow.com/questions/6234045/how-do-you-access-devise-controllers
* 區分不出user的權限，目前不同user登入都看到一樣的list。
    * 有關FK user has_many而 space belongs_to的建立？
* 如何確認current_user（還是其他名稱）存在，並指定給另外的欄（做成實體變數之類? 給created_by）

## 資料表問題

* created_by帶入登入的users.id
* icon如何與特定Space綁定

## 邀請會員
* 建立space_member資料表
* 多對多關係/FK　應為？
space_member的 "user_id" belongs_to users.id
space_member的 "space_id" belongs_to spaces.id

* 龍哥的例子是把動態產生卡片addToCart，但這裡應該是把users.id 傳入spaces.id ？再研究


###### tags: `Stork 開發日誌`


