我对数据库有一些问题。
好的,我有两个型号 - > Page
和Item
。
用于显示某些内容的页面。
Item
- >这是项目描述。
因此,我致力于小型电子商务shop
。
好的,所有这些模型都可以有一些评论。
所以,这是我此时的评论模型:
评论 - >
string : id
text : body
integer : page_id
integer : item_id
所以当有人向页面添加评论时 - > page_id将填充当前页面ID。
如果有人在项目中添加评论 - > item_id将被填充。
好的,我知道创建STI
或Polymorphic
assoc的最佳方式是什么,但我是否真的需要这种方式来处理我的情况?
抱歉我的英语不好,我来自俄罗斯。=)
答案 0 :(得分:1)
虽然您的表和模型的工作方式适合您,但您应该考虑使用polymorphic
。你没有 来使用它,但我相信这是最推荐的方式。
要使用polymorphic associations
,您需要更改模型:
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
end
class Item < ActiveRecord::Base
has_many :comments, :as => :commentable
end
class Page < ActiveRecord::Base
has_many :comments, :as => :commentable
end
和您的comments
表格,现在将包含此列:
integer : id # should be integer, not string
text : body
integer : commentable_id
string : commentable_type
希望它有所帮助...