如何在 Ruby on Rails 中实现 Active Record 继承?

2024-03-24

如何实现活动记录的继承?

例如,我想要一个动物类、狗类和猫类。

模型和数据库表映射如何?


Rails 支持单表继承。

来自AR docs http://api.rubyonrails.org/classes/ActiveRecord/Base.html:

Active Record 允许继承 将类的名称存储在 默认情况下名为“type”的列 (可以通过覆盖来改变 Base.inheritance_column)。这意味着 继承看起来像这样:

class Company < ActiveRecord::Base; end   
class Firm < Company; end  
class Client < Company; end   
class PriorityClient < Client; end

当你执行 Firm.create(:name => “37signals”),该记录将是 保存在 Companies 表中,类型为 =“坚定”。然后,您可以使用 Company.find(:first, "name = ‘37signals’"),它将返回一个 Firm 对象。

如果您没有类型列 在您的表中定义,单表 继承不会被触发。在 这种情况下,它会像平常一样工作 没有特殊魔法的子类 区分它们或 使用 find 重新加载正确的类型。

一个非常好的教程在这里:http://juixe.com/techknow/index.php/2006/06/03/rails-single-table-inheritance/ http://juixe.com/techknow/index.php/2006/06/03/rails-single-table-inheritance/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ruby on Rails 中实现 Active Record 继承? 的相关文章

  • Rails/Nginx 中的超时——最佳实践

    我正在开发一个应该在 Nginx 服务器上运行的 Rails 应用程序 根据输入 应用程序可能需要很长时间来处理请求 或者在出现错误时挂起 因此我想防止进程永远运行 除了确保客户端收到超时信号的 Nginx 配置之外 我想我可能仍然需要确保
  • Riak 在 MapReduce 查询中失败。使用哪种配置?

    我正在与 riak riak js 结合开发一个 nodejs 应用程序 并遇到以下问题 运行此请求 db mapreduce add logs run 正确返回存储在存储桶日志中的所有 155 000 个项目及其 ID logs 1GXt
  • 如何在 PostgreSQL 中使用条件和子查询创建唯一索引?

    我使用 PGSQL 并尝试添加下面的索引 CREATE UNIQUE INDEX fk client ON user client fk client WHERE fk client NOT IN SELECT fk client FROM
  • 浏览器关闭时 Omniauth 会话过期

    在我的 Rails 3 应用程序中 我使用 Omniauth 进行用户身份验证部分 fb twitter 实际上我遵循这个 https github com RailsApps rails3 mongoid omniauth https g
  • 在 Rails 3 中渲染 Markdown 文本

    我想将 markdown 转换为 html 在我看来我有markdown some text variable 但我得到了错误undefined method markdown I added require BlueCoth 到envir
  • MYSQL 的 Google OAuth 2.0 用户 ID 数据类型

    我正在实施 Google OAuth 2 0 并注意到 Google OAuth 返回的唯一用户 ID 是21位数字长的 我想大整数 20 足以满足这种需求 但我现在看到 Google OAuth 返回的用户 ID 的长度感到困惑 关于我应
  • 即使在急切加载之后,belongs_to 关联也会单独加载

    我有以下关联 class Picture lt ActiveRecord Base belongs to user end class User lt ActiveRecord Base has many pictures end 在我的
  • Rails - 渲染:目标锚标记的操作?

    我希望像这样使用渲染 render action gt page form 我也尝试过这个 render template gt site page form 那也没用 这个特定页面上的表单位于最底部 如果提交时发生任何错误 我不希望用户被
  • 获取嵌套参数

    我有一个带有嵌套参数的表单 在下面的示例中 如何获取控制器中的 amount whole 值 Parameters utf8 gt authenticity token gt KCmBI6RLh0LdUsM2r5H1vhNykS1IXecF
  • 使用 rspec 测试嵌套路由

    我正在尝试使用 rspec 测试路由 以下给出了 预期块返回真值 的错误 我不确定我错过了什么 通过浏览器我可以发布到这个网址并且成功 有任何想法吗 谢谢 Routes resources forum topics do resources
  • Magento:如何覆盖本地模块中的模型

    我试图在本地文件夹中覆盖本地文件夹中的模块 但我不知道是否可能 这就是我所做的 我创建了 local Mycompany Modulename Model Model php 我想覆盖 local Othercompany Modulena
  • 如何加载页面特定的rails 4 js文件?

    我正在阅读资产管道的 Rails 指南文档 它指出 CoffeeScript 页面特定生成的文件 如果清单上有 require tree 指令 则默认情况下可供用户使用 这对我不起作用我必须包括这个 在特定控制器上 我缺少什么 资产管道会将
  • 如何向 Rails 应用程序添加自定义字体?

    我想在 RoR 应用程序中使用几种字体 但它们的格式主要是 ttf 和 otf 等 我该如何将这些文件嵌入到我的 Rails 应用程序中 也就是说 一旦我将它们放入我的资产文件夹中 将它们嵌入我的 CSS 和 或 LESS 文件中的语法到底
  • sqlite3从打印数据中删除括号

    我创建了一个脚本 用于查找数据库第一行中的最后一个值 import sqlite3 global SerialNum conn sqlite3 connect MyFirstDB db conn text factory str c con
  • 如何在 Ruby 2.2 上删除不安全密码来强化 Rails+webrick+https

    更新 首先 我的测试代码没有充分显示 ruby 2 4 看到 SSLCiphers 选项 而 ruby 2 2 没有 我编辑了下面的示例代码以清楚地表明这一点 更新 由于我的问题未能得到社区的任何帮助 我继续前进 两天后找到了解决方案 我将
  • SSDT SQL Server 数据库项目中用于架构比较的命令行/API?

    在 Visual Studio 2012 中 我们有Schema Compare http msdn microsoft com en us library hh272690 28v vs 103 29 aspx in SSDT http
  • Rails 资源单数还是复数?

    我有一条搜索路线 我想将其设为单数 但是当我指定单数路线时 它仍然会生成复数控制器路线 这是应该的样子吗 resource search Gives me search POST search format action gt create
  • Rails 4:将数据库导出到 YAML

    使用 Rails 2 3 可以使用几个插件之一将数据库轻松导出 转储 到 YAML 请参阅将数据库表导出到 YAML 文件的最佳方法 https stackoverflow com questions 490507 best way to
  • Heroku Rails 应用程序级别不记录日志

    我在 Heroku 上有一个 Rails 应用程序 它没有在应用程序级别进行日志记录 当前版本 红宝石1 9 3 导轨3 1 3 在 config environment development rb 中有以下几行 config logge
  • dbms_xmlgen.getxml - 如何设置日期格式

    我们使用 dbms xmlgen getxml 实用程序通过 SQL 查询生成 xml 该查询从几乎 10 15 个相关表中获取数据 默认情况下 日期格式生成于dd MMM yy格式 有什么方法可以在 dbms xmlgen getxml

随机推荐

  • 数据库项目未运行部署后脚本

    我们有一个包含三个数据库项目的解决方案 所有三个生成的 dacpac 均按顺序部署 但由于某种原因 其中一个 dacpac 不运行部署后脚本 我们使用 sqlpackage 创建 diffscript 并且 diffscriptdoes正确
  • 使用角度2显示图像

    我对 Angular 2 很陌生 我被困在这里 我必须显示我正在使用相对路径的图像 img src images publicVideo1 PNG 但出现以下错误 null 1 GET http localhost 4200 null 40
  • 从批处理文件中读取和写入 REG_DWORD

    我的要求是从注册表中读取 REG DWORD 并将其写入另一个位置 我已成功从注册表位置读取数据 但不知道如何写入 My code echo off REG QUERY HKEY LOCAL MACHINE SOFTWARE Microso
  • XLL Excel Addin 的基础知识 - 需要从 Excel 调用 C# API [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对创建 Excel 插件还很陌生 早些时候 我曾经为 NET 库创建一个 tlb 我曾经使我的 NET 类 COMVISIBLE 并
  • 在 Windows Docker 上安装 Matlab

    尝试在 docker 映像上安装 Matlab 运行时以及我正在处理的项目 该项目是一个引擎 它将根据给定的内容运行各种测量 其中许多测量都使用 Matlab 当我运行 docker 时 出现 MWArray 程序集初始化失败 或缺少 ma
  • 检测 Android 中的应用程序崩溃

    我正在构建一个有时会崩溃的应用程序 我想知道它在下次打开它时崩溃 以便我可以向用户建议一些崩溃后选项 我怎样才能检测到崩溃 另外我希望能够在崩溃之前保存用户的工作 我的意思是实时检测崩溃 我可以在不知道崩溃位置的情况下做到这一点吗 您需要知
  • CSSMERR_TP_NOT_TRUSTED 错误

    我按照文档做了所有事情 我将 Apple 全球开发人员证书标记为始终可信 iPhone 发行版为 始终可信 但我遇到了以下错误消息 Users keyss Desktop Deep Free Version build Release ip
  • 衡量 Kotlin 代码的测试覆盖率?

    有没有办法衡量 Kotlin 代码的测试覆盖率 Jacoco 给出错误的结果 因为无法确定自动生成的代码 还有其他解决办法吗 如果您正在使用 IntelliJ IDEA 此链接将对您有所帮助 https www jetbrains com
  • 单页应用程序的 webforms 与 asp.net mvc - 选择哪个? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Vagrant 超时

    有一些问题让我的流浪汉站起来 拿到箱子就跑vagrant init之后vagrant up命令我收到此消息 Bringing machine default up with virtualbox provider gt default Im
  • 设计 + 主动管理重定向

    我在为我的应用程序设置重定向时遇到问题 用户应该转到他们的个人资料 用户 节目 管理员应该转到管理仪表板 我该如何设置 目前出现以下错误 NameError in ActiveAdmin Devise SessionsController
  • 运行yarn install时,如果一个模块不提供另一个模块,这意味着什么?

    当我跑步时yarn在我使用 firebase 的 React 应用程序上 我会收到几个警告 例如 firebase auth npm 0 14 5 c52f6 doesn t provide firebase email protected
  • 带冒号的 Javascript 内部函数

    我知道你可以写以下内容 var obj test something 但在这段代码中 内部函数引用的不是变量 而是函数 还有其他方法可以编写 调用内部函数吗 function outer var a Outerfunction consol
  • 如何制作可点击的 CSS3DObject

    我正在使用三个 JS CSS3DRenderer 尝试使 CSS3DObject 在单击时更新其position z 这是我的代码 var element document createElement div element style w
  • 使用 C# 执行 SSIS 包时出错

    我尝试执行一个非常简单的SSIS封装使用C 直接在 Visual Studio 2015 中启动时 此包运行良好 SSIS 包的名称是 Lesson 1 dtsx 我尝试使用开始这个过程C 使用以下代码 using System using
  • 搜索循环后网络抓取表格

    该表的 HTML 为 table border 1 width 100 tr class row0 td style width 30 strong TITLE strong td td style width 40 UNIQUE td t
  • 使用 RxJS 和 Angular2 限制并发 http 请求

    我以前见过这个问题 但回答总是让我不满意 所以我会尽量准确 我在用着https www npmjs com package rxjs https www npmjs com package rxjs想要对大量的 http 请求进行排队 并且
  • Pandas - 按行交错/压缩两个 DataFrame

    假设我有两个数据框 gt gt df1 0 1 2 0 a b c 1 d e f gt gt df2 0 1 2 0 A B C 1 D E F 如何交错行 即得到这个 gt gt interleaved df 0 1 2 0 a b c
  • 将文本添加到图像并保存

    在我的程序中 我允许用户输入一些文本 然后使用graphics DrawString 方法 当我然后去保存该图像时 它会保存没有文本的图像 如何将两者保存为一张图像 我看过一些例子 但没有一个有帮助 private void txtTool
  • 如何在 Ruby on Rails 中实现 Active Record 继承?

    如何实现活动记录的继承 例如 我想要一个动物类 狗类和猫类 模型和数据库表映射如何 Rails 支持单表继承 来自AR docs http api rubyonrails org classes ActiveRecord Base html