我是Rails的新手,并且一直在努力解决命名约定,以找出我实际指的是什么。由于许多项目的命名非常相似(例如模型类,数据库表,控制器),因此从示例中可以明显看出哪个对象被引用。
在guides的关联中,它使用帖子和评论作为示例。你能帮我理解实际被引用的内容吗?
与协会
has_many :comments
什么是:comments
?这是模型类还是控制器?
引用相关对象时:
@post.comments.build
这个例子中comments
是什么?它是类,控制器还是实例变量?
答案 0 :(得分:0)
评论是模型,而不是控制器。在两个示例中都是如此。首先,它是两个模型之间关系的定义。在第二个中,它是一个类型为注释的新对象,它创建并填充了对帖子的引用。
您可以使用的经验法则是,模型通常不会引用控制器,而是引用其他模型。
答案 1 :(得分:0)
模型代表真实对象。(因此它们被称为模型)。评论,帖子是实际的对象表示。 has_many:评论只是说帖子有很多评论的方式。所以它指的是模型。
控制器是模型执行操作的位置。随着您的进展,您会发现给定模型可以有多个控制器。控制器是您决定如何处理各种事件的地方。因此,任何路由都将映射到控制器操作。
@ post.comment.build对于可能有评论的模型帖子说,建立模型评论的实例。这将导致触发控制器中的功能。