0
我只想問我做的事對我正在製作的應用程序(初級開發人員級別)是否合理。可以使用Polymorphic Association來顯示不同類型的用戶嗎?
基本上應用程序涉及醫生,客戶和管理員(現在)。每個人都有他們自己的個人資料頁面,可以做不同的事情。我也有註冊過程的用戶類。
我選擇PA的理由是每個人都以用戶身份登錄,我想將「作爲醫生」的東西與「作爲用戶」的東西分開。這是一個好主意嗎?
class User < ActiveRecord::Base
rolify
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
belongs_to :profile, polymorphic: true
end
class Doctor < ActiveRecord::Base
has_one :user, as: :profile, dependent: :destroy
accepts_nested_attributes_for :user
## doctor stuff
delegate :email, :password, to: :user
end
class Client < ActiveRecord::Base
has_one :user, as: :profile, dependent: :destroy
accepts_nested_attributes_for :user
## client stuff
delegate :email, :password, to: :user
end
謝謝@Coenwulf。我大約80%相信這是要走的路,但在閱讀[Enterprise Rails](http://enterpriserails.chak.org/full-text/chapter-10-multiple-table-inheritance)時,我很擔心關於數據庫的完整性。例如,我可以創建一個沒有電子郵件地址的醫生,這對我來說太可怕了。這是可以解決的嗎? –
它看起來像你在用戶上存儲電子郵件。這是一個問題,因爲用戶_必須有一個電子郵件地址,但醫生不需要一個?如果是這樣,是因爲醫生不一定是用戶?你能提供關於這種情況的更多細節,或者你會得到什麼驗證? – Coenwulf
哦,我還沒有驗證,我剛剛得到了工作。猜猜我應該把驗證,然後再次檢查問題。是的,所有的醫生都是用戶,並且需要一個電子郵件地址。 –