ActiveModel:不同类型资源的正确关系
ActiveModel: proper relation for a different type of the resource
我正在尝试为以下情况确定正确的 ActiveModel 关系:有图片并且它们有不同的类别:foo、bar、baz 和 qux。用户可以为每张图片设置一个赞和多个评论。
我从 Catregory
和 Foo
模型开始。最简单的方法可能是 - 为每个 Foo、Bar、Baz 和 Qux 模型创建 likes
和 comments
属性。但我觉得这是一种愚蠢的方法……可能有更好的方法。
对于这种情况,可以选择什么样的最佳关系?
这是我阅读你的问题时的想象(我确定你的图片是由用户创建的,因为你的模型看起来很像社交网络):
class User < ActiveRecord::Base
has_many :pictures
has_many :comments
has_one :like
end
class Picture < ActiveRecord::Base
belongs_to :user
belongs_to :category
has_many :likes
has_many :comments
end
class Category < ActiveRecord::Base
has_many :pictures
end
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :picture
end
class Like < ActiveRecord::Base
belongs_to :user
belongs_to :picture
end
类别是 categories
Table 的行。与其为每个类别创建一个模型,不如为所有类别创建一个模型 Category
,并具有 name
、color
或任何您想要的属性。
我正在尝试为以下情况确定正确的 ActiveModel 关系:有图片并且它们有不同的类别:foo、bar、baz 和 qux。用户可以为每张图片设置一个赞和多个评论。
我从 Catregory
和 Foo
模型开始。最简单的方法可能是 - 为每个 Foo、Bar、Baz 和 Qux 模型创建 likes
和 comments
属性。但我觉得这是一种愚蠢的方法……可能有更好的方法。
对于这种情况,可以选择什么样的最佳关系?
这是我阅读你的问题时的想象(我确定你的图片是由用户创建的,因为你的模型看起来很像社交网络):
class User < ActiveRecord::Base
has_many :pictures
has_many :comments
has_one :like
end
class Picture < ActiveRecord::Base
belongs_to :user
belongs_to :category
has_many :likes
has_many :comments
end
class Category < ActiveRecord::Base
has_many :pictures
end
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :picture
end
class Like < ActiveRecord::Base
belongs_to :user
belongs_to :picture
end
类别是 categories
Table 的行。与其为每个类别创建一个模型,不如为所有类别创建一个模型 Category
,并具有 name
、color
或任何您想要的属性。