首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActiveRecord背后的理论/理论基础::Base

ActiveRecord背后的理论/理论基础::Base
EN

Stack Overflow用户
提问于 2013-01-08 00:42:18
回答 3查看 259关注 0票数 1

这里是Rails的初学者。

你能帮我了解一下我看到的大多数代码样本的最上面的理论吗?“ActiveRecord::Base”、“应用程序控制器”和“ActionController::Base”部分?

  1. 你怎么称呼这三个人?它们都是物体吗?上课?
  2. 我理解'class X< ActiveRecord::Base‘是在模型中创建一个对象&类ApplicationController < ActionController::Base’用于在Controller中创建一个对象.那么,在视图中创建对象是否有类似之处,仅仅是为了在MVC的所有三个组件上对其进行舍入呢?
EN

回答 3

Stack Overflow用户

发布于 2013-01-08 00:58:47

ActiveRecord::BaseApplicationControllerActionController::Base都是类。您需要创建一个实例--其中之一--以获得一个对象,但您永远不会这样做。相反,您将扩展它们以创建新的子类,然后创建这些类的实例。

我相信有一个用于视图的基类,但是您不应该在正常的用法中看到它。通常,您将创建视图模板,而不是查看,因此您将不会在框架的该部分处理类。

票数 1
EN

Stack Overflow用户

发布于 2013-01-08 02:58:46

补充一下已经说过的话,因为它都是准确的。

我理解'class X< ActiveRecord::Base‘是在模型中创建一个对象&类ApplicationController < ActionController::Base’用于在Controller中创建一个对象.那么,在视图中创建对象是否有类似之处,仅仅是为了在MVC的所有三个组件上对其进行舍入呢?

这是正确的道路,但有一些语义上的差异。

class User < ActiveRecord::Base只是创建ActiveRecord::Base的一个子类。在您执行类似于User.create()的操作之前,您会得到该类的一个实例,这个实例有时可能被称为对象。

子类是具有父类的类的特殊单词。在ruby中,您可能记得类是Object类的所有子类,非常令人困惑。

此外,子类ActiveRecord::Base不应该被认为是在模型中创建对象。相反,将您的子类视为模型的描述(通常是希望存储的一些数据)。每个子类本身都是一个模型。它都是语义的,但它可以帮助您理解。

控制器也是如此。您不是在控制器中创建对象,而是创建一个全新的控制器描述。在实例化之前,这种描述并不是真正具体的,当您或用户从应用程序请求页面时,rails就会自动发生这种情况。

最后,确实有一个类可以完成名为ActionView::Base的三重奏。Rails通过在控制器中调用render自动创建它。

票数 1
EN

Stack Overflow用户

发布于 2013-01-08 01:04:44

ActiveRecord::Base,ActionController::Base,是基于MVC的类。但是,您可以在不扩展这些类的情况下创建模型或控制器,这样它们就不会具有类提供的特性。

但是,在视图中,通常没有人可以在视图中创建对象或模型。这可以确保增加代码的可读性和可维护性。它将显示更清晰的代码。此外,在像index.rb这样的特定视图中,它实际上是与控制器连接的,您可以在控制器中获得初始化的对象实例,并使用它在视图中显示数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14206580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档