簡體   English   中英

Ruby on rails模型與多個父母

[英]Ruby on rails model with multiple parents

在我的Rails應用程序中,我有兩個模型,文章和項目,它們都與用戶相關聯。 我想為每個模型添加注釋。 構建這個的最佳方法是什么?

這是我目前的設置:

class Comment < ActiveRecord::Base
  belongs_to :article
  belongs_to :project
end

class Article < ActiveRecord::Base
  belongs_to :user
  has_many :comments
end

class Project < ActiveRecord::Base
  belongs_to :user
  has_many :comments
end

class User < ActiveRecord::Base
  has_many :articles
  has_many :projects
  has_many :comments, :through => :articles
  has_many :comments, :through => :projects
end 

這是處理結構的正確方法嗎? 如果是這樣,我如何管理CommentsController,如果它是通過文章創建的,則為article_id;如果是通過項目創建的,則為project_id? 我應該設置特殊路線嗎?

最后一條評論:評論並不總是需要有用戶。 因為這對我的網站來說,我希望匿名觀眾能夠發表評論。 這是一項微不足道的任務嗎?

使Comment成為多態模型。 然后創建一個多態關聯。

這是一個來自Rails wiki的多態關系的例子,這里是來自截屏男子Ryan Bates的Railscast

你可以看看 - acts_as_commentable插件http://github.com/jackdempsey/acts_as_commentable/tree/master

或者你可以繼續進行多態關系

您可以使ArticleCommentProjectComment具有相似的結構但是單獨存儲,然后創建一個返回兩種類型注釋的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM