天天看點

《Rails Recipes》Part II Database Recipes 知識點總結 二

Many-to-Many Relationships with Extra Data 帶有資料的多對多關系

一般多對多關系都帶有 一個存儲關系的表 這表一般用處比較單一 但是有時也需要在這個表中添加除關系以外的資料 下面有個訂雜志的例子

一般情況下

但是 這個:magazines_readers 表 在添加一些屬性後就可以作為一個訂閱模型使用

不再是單純存儲:magazines 和:readers 的關系 如下

三個模型的設定如下

定義自己的查詢方法

例子

chad> ruby script/console

>> Magazine.find(1).semiannual_subscribers

=> [#<Reader:0x26ba05c @attributes={"name"=>"Anthony Braxton", "id"=>"1"}>]