2012-04-22 54 views
2

我目前使用has_and_belongs_to_many來實現多對多關係。然而,我想要在many_to_many表中放入一個屬性。將另一個屬性添加到rails中的多對多表中3

基本上我正在創建一個電子郵件系統。我有用戶和對話。用戶可以有很多對話,對話也可以有很多用戶。但是,我試圖讓我可以擁有一個讀/未讀屬性來顯示哪些消息被讀取。由於對話可以有很多用戶,因此將對話屬性放在對話表中是不現實的,因爲這意味着對話被所有人閱讀。所以我認爲它會在中間表中效果最好。我想知道如何在中間表中訪問該屬性。如果該屬性被讀取。我可以通過哪些代碼訪問該代碼,以及如何更新屬性。如上所述,我正在使用has_and_belongs_to_many

+1

使用['has_many:through'](http://guides.rubyonrails.org/association_basics.html#choosing-between-has_many-through-and-has_and_belongs_to_many) – pjumble 2012-04-22 12:10:50

回答

5

如果您想爲has-and-belongs-to-many association擁有其他屬性,則必須爲該關係構建模型類。請參閱Rails Guides about it中的詳細說明。

在閱讀完本人之後,現在已經不贊成使用當前版本的Rails,因此您應該切換到has_many :through。您的模型可以(複製並從Rails的指導改變了,我不知道是否connection是一個好名字的M2N關係):

class User < ActiveRecord::Base 
    has_many :connections 
    has_many :conversations, :through => :connections 
end 

class Connection < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :conversation 
end 

class Conversation < ActiveRecord::Base 
    has_many :connections 
    has_many :users, :through => :connections 
end 

有您能額外的屬性添加到您的connections表,並在代碼中提及他們。

+0

我有類似的問題,多對多的表單和其他屬性。我似乎無法構建參數來在create.http://stackoverflow.com/questions/11199572/rails-3-2-has-many-through-form-submission#comment14710178_11199572上插入額外的屬性 – ctilley79 2012-06-27 03:26:20