我是Rails的新手,一直在为命名约定而苦苦挣扎,以弄清楚我实际指的是什么。由于许多项的命名非常相似(例如模型类、数据库表、控制器),从示例中并不总是能明显看出引用的是哪个对象。
在关联的guides中,它使用帖子和评论作为示例。你能帮助我理解实际所指的是什么吗?
对于has_many :comments,什么是:comments?这是模型类还是控制器?
当引用关联的对象时:@post.comments.build本例中的comments是什么?是类、控制器还是实例变量?
发布于 2012-08-04 04:04:15
注释是一个模型,而不是一个控制器。这在您的两个示例中都是正确的。首先,它定义了两个模型之间的关系。在第二个示例中,它是一个类型为comment的新对象,该对象被创建并填充了对帖子的引用。
您可以使用的一条经验法则是,模型通常不会引用控制器,而是其他模型。
发布于 2012-08-04 04:13:04
模型代表真实的对象(因此它们被称为模型)。评论、帖子是实际的对象表示。has_many :评论只是说一篇文章有很多评论的一种方式。所以它指的是模型。
控制器是模型的动作发生的地方。随着你的学习,你会意识到一个给定的模型可以有多个控制器。控制器是您决定如何处理各种事件的地方。因此,任何路由都将映射到控制器操作。
@post.comment.build说,对于有可能评论的模型帖子,构建一个模型评论的实例。这将导致触发控制器中的功能。
https://stackoverflow.com/questions/11802525
复制相似问题