我正在構建一個具有多個角色的Rails應用程序。我不能對用戶模型使用繼承,因爲每個角色都有非常不同的屬性和行爲(即 - 登錄後有不同的頁面訪問和功能)。所以我決定爲每個角色(即客戶,服務提供商,客戶代表等)建立單獨的模型。如何爲多個角色構建關聯?
這項工作的協會如何?我想出了以下內容,但Role類對我來說看起來很糟糕。如果用戶可以擁有多個角色,那麼它就不會那麼糟糕,但由於他們只有一個角色,我必須在Role中編寫自定義驗證,以確保只選擇了一個角色。你們有什麼感想?
class User < ActiveRecord::Base
has_one :role
end
class Role < ActiveRecord::Base
has_one :customer
has_one :service_provider
has_one :customer_representative
end
class Customer < ActiveRecord::Base
end
class ServiceProvider < ActiveRecord::Base
end
class CustomerRepresentative < ActiveRecord::Base
end
我也是在試圖創建色器件多個模型之中,但是這導致了一下多種模式之間重複的代碼。 – 2012-08-07 19:45:37