铁路协会的澄清

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)

人工智能轨道交通行业周刊-第34期(2023.2.13-2.19)

人工智能轨道交通行业周刊-第39期(2023.3.20-3.26)