铁路协会的澄清

时间:2014-04-05 00:39:39

标签: ruby-on-rails ruby-on-rails-4 associations rails-activerecord

在关注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应用程序,谢谢。

1 个答案:

答案 0 :(得分:0)

评论属于音乐会,所以在Review删除

has_one :concert, through => :artist

我不确定您的应用是否足够,但您可能需要Review

has_one :artist through => :concert

虽然。请参阅Rails Association Basics