1

使用SQLite運行Rails 3.2.8(從rubyonrails.org上的當前dl的基本設置)Rails - 許多其他人可以使用的模型之一?

如果我有幾個模型,我想擁有「notes」屬性和所有「notes」都是String,那麼應該在那裏只有一個特定的筆記模型,所有其他模型都參考筆記模型?

每個模型都有自己的「筆記」屬性嗎?

如果第一個響應是否意味着對於引用「筆記」的每個關係,是否需要創建另一個類來定義該關係? (即tableOne,tableTwo和tableThree所有的參考筆記,那麼我需要創建額外的類tableOne_notes,tableTwo_notes和tableThree_notes)

是否適用多態解決方案?

回答

3

如果你想要一個'筆記'模型可以用於許多其他模型的相同目的,這將是一個多態關係。 無論應用程序框架如何,這都是真實的。

在軌實現這個例子多態性關係的特定情況下,你會在筆記模型/表,並在注模型添加

note_type 

列,使用數據庫遷移加:

belongs_to :notable, :polymorphic => true 
Note

然後

has_many notes, :as => notable` 

在需要筆記的其他模型中。

有關更多信息,請參閱http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

多態的關係,頻繁使用:

  • 票據(如您使用的)
  • 更新信息(時間戳,IP地址,用戶代理等)
  • 類別是簡單的鍵值查找
0

這取決於您的需求。但基本上也可以創建一個模型Notice,創造NoticeOtherOther2之間的關係1-n ...

當我明白你的問題只有一個1-n或多個1-n關係纔有意義。如果您在每個表格中添加一列notes,則每個數據行只能有一個註釋。定義:through的另一個類不需要1-n關係。

相關問題