【发布时间】:2014-04-05 00:39:38
【问题描述】:
在遵循this 指南时,我正在尝试计划如何为我的应用程序进行适当的rails 关联。
简而言之,我有一个用于评论的脚手架表单,它必须由注册用户创建。我想制作一个有很多评论的音乐会模型,如果使用尚未完成的艺术家、场地和日期(评论表单中的所有字段)创建评论,将创建一个音乐会对象并且该评论将属于给它。但是,如果创建的评论与之前的评论使用相同的艺术家、场地和日期,则该评论将被添加到已经存在的音乐会对象中。
我还想要一个 Artist 模型,它有很多音乐会并且可能有很多评论(尽管这似乎没有必要,因为评论包含在音乐会中)。
据我了解,我想做这样的事情:
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 应用程序,谢谢。
【问题讨论】:
-
根据我想要的关系类型的简单英文描述,这是正确的编码方式吗?以及 has_one 关系如何在 Review for Concert 中发挥作用?
标签: ruby-on-rails ruby-on-rails-4 associations rails-activerecord