在关注this指南的同时,我正在尝试计划如何为我的应用程序执行正确的rails关联。
简单地说,我有一个用于评论的脚手架表格,必须由注册用户创建。我想制作一个有很多评论的音乐会模型,如果用艺术家,地点和日期(评论表格中的所有字段)创建一个尚未完成的评论,将创建一个音乐会对象并且该评论将属于它。但是,如果使用与之前的评论相同的艺术家,地点和日期创建评论,则此评论将添加到已存在的音乐会对象中。
我还想要一个艺术家模型,它有很多音乐会,可能有很多评论(虽然这似乎是不必要的,因为评论包含在音乐会中)。
根据我的理解,我想做这样的事情:
class User < ActiveRecord::Base
has_many :reviews
end
class Review < ActiveRecord::Base
belongs_to :user
belongs_to :concert
has_one :concert, through => :artist #and review's venue and date?
end
class Concert < ActiveRecord::Base
has_many :reviews
belongs_to :artist
end
class Artist < ActiveRecord::Base
has_many :concerts
end
然后我想我需要4个不同的迁移文件,并且需要确保他们使用belongs_to
而不是has_many
或其他任何关联?
我只是想确保根据我正在尝试做的事情,对正确的关联有一个很好的总体思路。任何帮助或建议/反馈表示赞赏,这是我的第一个rails应用程序,谢谢。
答案 0 :(得分:0)
评论属于音乐会,所以在Review
删除
has_one :concert, through => :artist
我不确定您的应用是否足够,但您可能需要Review
has_one :artist through => :concert
虽然。请参阅Rails Association Basics。