2012-08-03 36 views
0

我是Rails的新手,一直在努力处理命名约定,以找出我实际上指的是什么。由于命名非常相似的许多项目(例如,模型类,数据库表,控制器),从示例中引用的对象并不总是显而易见的。Rails - 关联 - 我指的是什么?

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

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

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

回答

0

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

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

+0

谢谢 - 这是有道理的。 – 2012-08-03 20:59:04

0

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

控制器是对模型进行操作的地方。随着你的发展,你会意识到给定模型可以有多个控制器。控制器是您决定在各种事件上做什么的地方。因此,任何路线都将映射到控制器操作。

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