【发布时间】:2014-02-02 04:02:36
【问题描述】:
我找到了很好的答案 here、here 和 here,但我无法将其概括为我所追求的。
我有多个类别,这些类别将被策划和选择。因此,用户将能够选择 cat1、cat2 和 cat3,但不能键入自定义类别。
一个类别可以有很多帖子,一个帖子可以有很多类别。
一个帖子可以有多个 cmets。
一个用户可以有很多帖子和很多 cmets。
对于帖子/类别关系,我认为这会起作用,但用户/帖子/评论关系是我摸不着头脑的地方......
# app/models/category.rb
class Category < ActiveRecord::Base
has_and_belongs_to_many :posts
end
# app/models/post.rb
class Post < ActiveRecord::Base
has_and_belongs_to_many :categories
belongs_to :user
has_many :comments
end
# app/models/user.rb
class User < ActiveRecord::Base
has_many :posts
has_many :comments
end
# app/models/comment.rb
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :post
end
这看起来很接近吗?我需要任何外键来处理这一切吗?在此先感谢,我确信这很简单,但我的理解中缺少一些明显的东西。
然后我不得不担心如何为所有这些编写测试!不过那是另一天...
编辑:我应该指出,我还没有开始。只是在开始之前尝试将其映射出来,因此它应该可以简化事情,减少迁移等。
再次编辑:到目前为止已实施建议的更改。谢谢!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 belongs-to model-associations