1

我正在rails中實現一個求職應用程序,用戶可以註冊三個不同的配置文件/角色。如何實現多個角色的關聯?

  1. 僱主
  2. 工人
  3. 企業家(擁有自己的公司)

用戶可以選擇多個配置文件/角色。

(我用的是設計)

我的查詢是有可能實現上述case.?like的單表繼承

CLass Employer < user 
    CLass worker < user 

或者什麼應該是最好的解決方案數據庫結構來實現上述功能?

+0

http://code.alexreisner.com/articles/single-table-inheritance-in-rails.html –

回答

0

是的,這當然是可能的,當車型共享相同的屬性STI被廣泛使用,如果你希望能夠查詢它們放在一起(將有助於速度和簡單,因爲你是裝入一張數據庫表)。你也可以在類之間共享代碼,你只需要在父類中放置一個方法並讓所有的子類繼承。

側面說明,請確保您下面的Ruby命名慣例,利用類

Class Worker < User 

EDIT(建議的方法)

我不會有這些角色從用戶繼承,你仍然可以使用STI但創建另一個模型

Class User < ActiveRecord::Base 
     has_many :profiles 
    Class Profile < ActiveRecord::Base 
     belongs_to :user 
    Class Employer < Profile 
    Class Worker < Profile 
    Class Entrepreneur < Profile 
+0

@@謝謝凱爾快速回復。是我想實施STI,但正如我在我的問題中提到的在這種情況下,用戶可以選擇多個配置文件/角色如何實施STI。 –

+0

誤解了這個問題,我會更新 –

+0

是請我真的struggling.If大家有什麼好的解決方案,請建議me.Because其他功能/好的代碼/數據庫是取決於這個重要thing.currently我使用rolify寶石但我感覺,它不是一個好的解決方案。 –

0

你可能想看這個railscast - 這是我最近剛剛實施。它在數據庫中使用了一個位掩碼列。我還將其與cancan配對以處理我的權限。