我有一個User
模型,可以有很多Websites
。例如,我將能夠呼叫User.websites
,它將拉起用戶擁有的所有網站的ActiveRecord數組。但每個網站都使用單表繼承(STI)和一個確定網站類型的列,如商業,廣告或論壇。我的問題是,如果用戶擁有一個特定類型的網站,我將創建一個case/when語句來運行一個函數。例如:STI類型列的案例說明
@user = User.first
case @user.websites
when includes?(Commercial)
'This user has a commercial website'
when includes?(Forum)
'This user has a forum website'
when include?(Ad)
'This user has a advertisement website'
end
有沒有人有關於做這種事情的最佳方法的線索?
調用模型上的關係而不是實例對象'@ user'毫無意義 –
@JoeHalfFace我猜這是誤導,我不會調用模態本身。只是它的一個實例。它更像是一個示例佔位符。我會編輯它。謝謝 – sclem72
這些功能做什麼?似乎這個邏輯不應該是用戶模型的責任,而應該是網站模型或另一個可能的PORO。現在,如果一個用戶網站同時包含商業和論壇網站,商業將執行,而不是論壇 – engineersmnky