0

我有一個有趣的問題,我從來沒有處理過。我正在尋找最好的方法來處理它。Rails - ActiveRecord - 將元素組合關聯到特定ID

我正在創建一個管理網站,將學生鏈接到虛擬機。學生可以註冊多門課程,並有一個virtual_machine_id,這取決於他們所學課程的組合。管理員可以創建新課程並(單獨)將課程組合映射到特定的virtual_machine_ids。

1)將變量元素組合與特定ID相關聯的最佳方式是什麼?如果這些元素已修復,我將創建一個表,其中包含每個元素的列和virtual_machine_id的一列。但是,由於這些元素可以更改(作爲管理員添加或刪除課程),我如何映射它們以便我可以輕鬆查詢組合並且它是關聯的ID?

2)現在,我使用has_many:through關聯將學生映射到課程,並將第三張表與student_id和course_id映射。如果我需要收集課程組合並將整個組合分配給一個virtual_machine_id(我無法將該ID分配給學生,因爲他們可能擁有多個virtual_machine,具體取決於他們參加多少課程),這是否正確?

我在看EAV(實體 - 屬性 - 值)模型作爲解決方案,但普遍的共識似乎是這是一個糟糕的想法,因爲你失去了一些ActiveRecord功能。

回答

0

如果您希望使用EAVActiveRecord的ORM你可以看看hydra_attribute gem它允許創建在運行時新的屬性和有可能通過他們找到/排序/組。

目前0.3.2版本不支持屬性設置,但在下一版本中我會添加這個功能,你將能夠以獨特的屬性集合分配給每個學生記錄