Rails - Associations - 我指的是什么?

时间:2012-08-03 20:02:38

标签: ruby-on-rails associations

我是Rails的新手,并且一直在努力解决命名约定,以找出我实际指的是什么。由于许多项目的命名非常相似(例如模型类,数据库表,控制器),因此从示例中可以明显看出哪个对象被引用。

guides的关联中,它使用帖子和评论作为示例。你能帮我理解实际被引用的内容吗?

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

引用相关对象时:     @post.comments.build 这个例子中comments是什么?它是类,控制器还是实例变量?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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