我有一個叫做Todo.rb
的模型,它有一個名爲「asset
」的屬性,它是一個字符串。該字符串包含模型的名稱,例如Call
,Email
等。如何從字符串中獲取模型類?
它們還包含asset_id
,它是ActiveRecord中Asset的特定記錄。
從Todo記錄中,我可以從實際的ActiveRecord類中分配到asset
?
=> #<Todo id: 165, created_at: "2010-11-04 00:49:45", updated_at: "2010-11-04 00:49:45", contact_id: 49, user_id: 1, asset: "Call", asset_id: 2, original_date: "2010-11-18", current_date: "2010-11-18", done_date: nil>
由此,我想asset
是等價的:
asset = Call.find(2)
我理解概念,這可能是單表繼承的情況下,但我不清楚如何,我想從用例中構建它。
我想我想通了使用constantize ...但仍在播放 – Angela 2010-11-04 01:37:36
這不是STI(單表繼承) - 多態是不同的。 STI是當多個模型密切相關時,因此在數據庫中共享一個表。 STI是Rails暫時唯一的繼承答案。 – 2010-11-04 02:45:04