铁路协会的澄清
Posted
技术标签:
【中文标题】铁路协会的澄清【英文标题】:clarification of rails associations 【发布时间】: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 中发挥作用? 【参考方案1】:评论属于音乐会,所以在 Review
中删除
has_one :concert, through => :artist
我对您的应用不够了解,但您可能希望Review
使用
has_one :artist through => :concert
虽然。见Rails Association Basics。
【讨论】:
以上是关于铁路协会的澄清的主要内容,如果未能解决你的问题,请参考以下文章
人工智能轨道交通行业周刊-第35期(2023.2.20-2.26)
人工智能轨道交通行业周刊-第35期(2023.2.20-2.26)
人工智能轨道交通行业周刊-第37期(2023.3.6-3.12)
人工智能轨道交通行业周刊-第34期(2023.2.13-2.19)