我有一个rails4应用程序。我已经拥有了下面的架构,并且会添加post_replies
表,belong_to :post_comment
和post_comment
将has_many :post_replies
。评论中的回复将始终属于给定的评论。
我的问题是应该在post_replies中添加多少外键?我将始终只在post index page
上显示这些内容,并在format_js
添加新回复。 post_reply
belongs_to post_comment
肯定,但我是否应同时使用belongs_to :user
和belongs_to :post
?
当前架构:
class User < ActiveRecord::Base
has_many :posts
has_many :post_comments, through: :posts
end
class Post < ActiveRecord::Base
has_many :post_comments
belongs_to :user
end
class PostComment < ActiveRecord::Base
belongs_to :post
belongs_to :user
end
计划架构:
class PostReply < ActiveRecord::Base
belongs_to :post_comment #this is needed for sure
belongs_to :post #do i need this?
belongs_To :user #and this?
end
路线:
#current:
resources :posts do
resources :post_comments, only: [:create, :update, :destroy], module: :posts
end
#and planning to add:
resources :post_comments, only: [] do
resources :post_repiles, only: [:create, :update, :destroy], module: :posts
end
答案 0 :(得分:2)
它应属于用户,但如果它已经属于post_comment则不需要属于该帖子,因为您可以通过该模型访问帖子。
答案 1 :(得分:1)
我认为您应该为PostReply
CommentReply
命名,因为它是对评论的回复,而不是对帖子的直接回复。
这应该可以正常工作。
class CommentReply < ActiveRecord::Base
belongs_to :post_comment
belongs_To :user
end