帖子belongs_to用戶,和用戶has_many帖子。
一篇文章也屬於一個主題,一個主題has_many文章。這應該甚至是一個has_many:通過關聯?
class User < ActiveRecord::Base
has_many :posts
end
class Topic < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :user
belongs_to :topic
end
嗯,這是很簡單,很容易建立,但是當我顯示一個主題,我不僅希望所有帖子爲主題,同時也是USER_NAME,這讓用戶的user_photo該郵政。但是,這些屬性存儲在用戶模型中,而不是與主題綁定。那麼我怎麼去設置呢?
也許它已經可以被調用,因爲Post模型有兩個外鍵,一個用於用戶,另一個用於Topic?
或者,也許這是某種「單向」has_many通過assiociation。就像發佈會是連接模型一樣,主題將會has_many:users,:through =>:posts。但是,這是不正確的。像用戶不has_many:主題。
所以這甚至需要has_many:雖然關聯?我想我只是對控制器看起來像是給該帖子的帖子和用戶發送一個給定主題有點困惑。
編輯:非常感謝所有的權衡。我選擇了tal的答案,因爲我用他的代碼作爲我的控制器;不過,我可以輕鬆地選擇j。's或tim's。謝謝你們倆。這實在太簡單了。我認爲今天可能標誌着我與鐵軌的戀愛開始。
你好,蒂姆,你能詳細說明一下。你說過一個has_many:通過關聯不是必需的,但後來說這會有所幫助。但我相信你的意思是,只有當我不希望實際的Post.message是正確的? 因此,使用tal發佈的控制器代碼是完成此任務的最佳/最快的查詢? – GoodGets 2010-03-31 00:58:57