0

我是 Rails 的新手,一直在努力使用命名约定来弄清楚我实际指的是什么。对于许多名称非常相似的项目(例如模型类、数据库表、控制器),从示例中所引用的对象并不总是很明显。

在关联指南中,它使用帖子和评论作为示例。你能帮我理解实际指的是什么吗?

跟协会 has_many :comments 是什么:comments?这是模型类还是控制器?

引用关联对象时: 此示例中的@post.comments.build 内容是什么?comments是类、控制器还是实例变量?

4

2 回答 2

0

评论是一个模型,而不是一个控制器。这在您的两个示例中都是正确的。首先是定义两个模型之间的关系。在第二个中,它是一个新的评论类型对象,它被创建并填充了对帖子的引用。

您可以使用的经验法则是模型通常不会引用控制器,而是其他模型。

于 2012-08-03T20:04:14.640 回答
0

模型代表真实的对象。(因此它们被称为模型)。评论、帖子是实际的对象表示。has_many :comments 只是说帖子有很多评论的一种方式。所以它指的是模型。

控制器是模型发生动作的地方。随着您的进行,您会意识到给定模型可以有多个控制器。控制器是您决定如何处理各种事件的地方。因此,任何路由都将映射到控制器操作。

@post.comment.build 表示对于有可能评论的模型帖子,构建模型评论的实例。这将导致触发控制器中的功能。

于 2012-08-03T20:13:03.930 回答