2012-12-20 67 views
0

什麼時候可以使用多個設計模型?什麼時候可以使用多個設計模型?

我有3種類型的用戶 - 用戶,供應商和管理員。供應商比用戶有更多的領域,所以我想爲他們分開表格。用戶可以註冊並使用Facebook登錄(供應商不能)。用戶和供應商共享相同的登錄頁面/表單。

我開始使用多個設計模型,弄不清如何處理單一登錄頁面,然後在此處閱讀大量有關使用多態關聯和STI而不是離散模型的內容。我仍然感到困惑,因爲什麼時候應該使用每種方法,哪裏會更好地工作......我知道它有點模糊,任何建議都會很棒,或者有很好的聯繫..

用戶還填寫當他們註冊時一堆額外的領域 - 即使通過Facebook。我如何跟蹤omniauth登錄的這些字段? (和我應該使用設計這個或類似omniauth身份..?)

感謝您看着這個!我是一個新手設置認證的第一次,非常感謝幫助

回答

1

根據情況建議分開或使用單個模型。替代方案:

  1. 使用獨立的模型,覆蓋控制器,所以,首先你是否在用戶的記錄匹配,如果不匹配,與供應商嘗試
  2. 使用一個模型,用於存儲用戶和供應商使用一個布爾值(一個字符串,如果它是一個多態協會)檢查類型的用戶,並且爲了存儲更多的領域

我認爲選項1是更容易,但做大了,選項添加相關模型#2有點困難但更短。

此外,將模型分開是個好主意,因爲用戶連接到FB和供應商否,它代表了很多差異。

換句話說,使用選項#2的搜索速度會更快,因爲它只有1個查詢,並且表格會很輕,因爲它不包含用戶和供應商的特定字段;你也必須考慮這個以作出決定。

對於管理員,您可以遵循相似的標準。

查看結果:https://github.com/mkdynamic/omniauth-facebook

相關問題