我在我的應用程序中使用Active Admin。Ruby on Rails,用戶模型和活動管理查詢
該應用程序有一個用戶模型(設計),但我有3個用戶組 - 家長,教師和學生。每個人都有自己的模型。
如
student.rb
belongs_to :user
user.rb
has_one :student
parent.rb
belongs_to :user
user.rb
has_one :parent
我想在這裏做的是存儲,這將是整個用戶羣體相同的用戶模型,使屬性「名字,姓氏,電子郵件」等,然後使用個人用戶模型來存儲每個用戶組所獨有的屬性。我正在使用主用戶表和三個用戶組表之間的一對一關係。
這裏(注意我還沒有顯示在用戶組表中的所有屬性):
的問題是,這是不是與活動管理員的工作這麼好。在視圖中,我必須創建一個用戶,然後以不同的視圖分配父母和學生。我想要一個表單,例如,學生的用戶記錄可以放入主用戶表中的屬性以及學生表中的唯一屬性,而無需轉到多個模型視圖以完成記錄。這太複雜了。
有沒有辦法在一個視圖中渲染來自不同模型的輸入?即學生在用戶表中具有「名」,「姓」......以及學生獨有的輸入?
如果你正在採取的方法,我在這裏採取什麼方法你會遵循?我甚至不確定我是否正確地完成了這些協會。事實上,我甚至不確定這是做到這一點的最有效的方法。
我正在使用枚舉來分配角色。
希望這裏有任何指導。謝謝。
嗨,謝謝,我曾試過STI,但有幾位消息來源警告不要使用STI來達到這個目的?結果比現在好一點,但我有點害怕。 STI是一種安全可靠的方法嗎? – Co2
缺點是有一些冗餘 - 你的表中只有一些字段適用於某些用戶類型(例如學生的'class_id')。但我認爲這是一個小的代價。在這些不同類型的用戶的行爲,視圖和控制器中是否有重疊?如果是這樣,我會認真考慮使用單個表來表示這些用戶模型。 –
我更新了非STI方法的答案,您將不得不在表單中使用'nested_params'。 –