0

虽然以下this指南,我正试图计划如何为我的应用程序做适当的轨道关联。轨道协会的澄清

用简单的英语,我有一个评论的脚手架形式,必须由注册用户创建。我想制作一个有很多评论的音乐会模型,如果评论是用艺术家,场地和日期(来自评论表单的所有字段)创建的,但尚未完成,则会创建一个音乐会对象并且此评论将属于到它。但是,如果创建的评论与以前的评论具有相同的艺术家,地点和日期,则此评论将添加到已存在的音乐会对象中。

我还想要一个艺术家模型,有很多音乐会,可能有很多评论(虽然这似乎没有必要,因为评论包含在音乐会中)。

从我的理解我想要做这样的事情:

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

问题是什么? – jcm

+0

基于简单的英语描述我想要什么类型的关系,这是正确的编码方式吗?以及has_one关系如何在Review音乐会上发挥作用? – parameter

回答

0

的审查属于音乐会所以在Review删除

has_one :concert, through => :artist 

我不知道你的应用不够好,但你可能想Review

has_one :artist through => :concert 

虽然。见Rails Association Basics