2013-08-25 100 views
1

我正在開發一個rails 4應用程序,我有兩個模型開發人員和應用程序。開發人員可以擁有許多應用程序並且屬於許多應用程序(一個應用程序的多個開發人員)我已成功設置加入表格,並且一切正常,但我想擴展此範圍,以便開發人員可以是:創建者,他可以訪問編輯應用程序或只能訪問視圖的協作者應用程序。任何關於儘可能好的建議都是爲了實現這一功能?Rails模型設置角色

應用

has_and_belongs_to_many :collaborators, class_name: 'Developer', association_foreign_key: :collaborator_id 
    has_and_belongs_to_many :founders, class_name: 'Developer', association_foreign_key: :founder_id 

開發

has_and_belongs_to_many :apps, foreign_key: 'collaborator_id' 
    has_and_belongs_to_many :apps, foreign_key: 'founder_id' 
+0

你怎麼定義'通過的has_many through'或'has_and_belongs_to_many'上'App'和'Developer'關係? – j03w

+0

@ j03w我更新了我的問題 – ny95

+0

您有2個選擇 1.創建一個類似於@zolter答案建議的新表,並且使用'has_many through'而不是'hbtm'在'edit'和'update'方法中有一些檢查在你的控制器中。 2.修改你的'hbtm'成爲一個合適的模型表:添加遷移創建時間戳列http://stackoverflow.com/questions/7542976/add-timestamps-to-an-existing-table並添加'角色'列到桌上也是如此。然後在'models'中創建'model'文件 – j03w

回答

1

我想你需要創建另一個表:

def change 
    create_table :access_restricts do |t| 
     t.integer :user_id 
     t.integer :application_id 
     t.integer :role_id 

     t.timestamps 
    end 
    end 

用戶和應用程序將有很多assess_restricts。