Rails DB 中使用 CamelCase 代替 Snake_case

2024-01-04

我的数据库表和字段名称采用驼峰命名法。是否可以将这些名称即时转换为snake_case?为了让模型方法看起来更漂亮?

该应用程序是 JRubyOnRails 3.0 / MSSQL DB / ActiveRecord-JDBC 适配器。


@arkadiy,事实上,我就在今天正在研究这个问题。

对于表名,我们当然有set_table_name http://apidock.com/rails/ActiveRecord/Base/set_table_name/class method:

class CamelCasedFoo < ActiveRecord::Base
  set_table_name :CamelCasedTable
end

对于像主键这样的东西,我们有set_primary_key http://apidock.com/rails/ActiveRecord/AttributeMethods/PrimaryKey/ClassMethods/set_primary_key:

class CamelCasedBar < ActiveRecord::Base
  ...
  set_primary_key "CamelCasedTableID"
end

并且应该可以将时髦的遗留列名别名为对 Rails 更友好的名称alias_attribute http://apidock.com/rails/Module/alias_attribute:

class CamelCasedBaz < ActiveRecord::Base
  ...
  alias_attribute :preferred_delivery, :DeliveryFrequency
end

要记住的一件关键事情是要注意任何 ruby​​ 或rails 的列名keywords http://oldwiki.rubyonrails.org/rails/pages/ReservedWords or 魔法字段名称 http://oldwiki.rubyonrails.org/rails/pages/MagicFieldNames.

Rails 似乎拥有所有元编程优点,可以让您处理遗留的数据库表名称和列。您可能希望阅读 Jonathan Hui 的博客文章“使用旧数据库的 Ruby on Rails 3 模型” http://jonathanhui.com/ruby-rails-3-model-working-legacy-database。您可能想看看安全属性 http://codingdaily.wordpress.com/2010/12/25/better-legacy-database-support-for-rails/ gem.

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

Rails DB 中使用 CamelCase 代替 Snake_case 的相关文章

随机推荐

  • 如何知道 R 完成了多少个深度学习 epoch?

    默认情况下 提前停止处于启用状态h2o deeplearning 但是 从 R 中 我如何知道它是否确实提前停止了 以及它停止了多少个纪元 我试过这个 model h2o deeplearning print model 它告诉我有关层 M
  • Hadoop:可以使用一对值作为“Key”吗?

    我正在尝试分析一个大型犯罪统计数据集 该文件约为 2 GB CSV 格式 大约有 20 列 但我只对其中的一个子集感兴趣 Crime Type 和 Crime in Year 例如 入室盗窃 犯罪类型 从2001年到2013年 每年都会发生
  • C++11 lambda 和模板特化

    我想知道下面给出的 lambda 的正确类型定义是什么 以便以下代码将使用符合 c 11 的编译器进行编译 include
  • 头文件中指向 __u32 的指针

    我需要像这样传递一个指针 extern int Si4709 dev chan get u32 但海湾合作委员会抱怨缺少括号 Si4709 dev h 130 error expected before token 我能做什么有什么想法吗
  • 接收 OData.PageResult 时如何避免 406?

    我有一个返回 PageResult 的 ODataController API示例 public PageResult
  • 如何修复“按钮”交互角色必须可聚焦

    我有用户可以选择的下拉选项列表 下拉列表中的选项是用标签 a gt handleSelect filter role button gt filter name a 问题是我必须添加tabIndex 0 or 1 修复 Eslint 的错误
  • 跨 HttpHandler 保留会话变量

    我有一个带有 5 个 ashx HTTPHandler 的 ASP NET 应用程序 它们实现 IRequiresSessionState 或 IReadOnlySessionState 调用第一个处理程序后 我创建一个变量并将其存储在会话
  • 为什么“None”与“np.newaxis”具有相同的效果? [复制]

    这个问题在这里已经有答案了 Why None具有保存效果np newaxis 例如 使用 np arange 10 None or np arange 10 np newaxis 两者都创建 array 0 1 2 3 4 5 6 7 8
  • 从命令行执行时如何阻止 PHP 返回标头?

    这可能是一个可笑的问题 但它已经困扰我一段时间了 我有一个邮件转发器通过管道传输到 PHP 脚本 它接收完美 但是我立即收到以下错误邮件 A message that you sent could not be delivered to o
  • 使用2个不同的数据源:Spring批处理

    我有2个不同的数据源 一个用于读取 另一个用于写入结果 如下所示 ItemReader 应从 dataSource 1 获取数据 ItemWriter 应将数据写入 dataSource 2 知道读者和作者在同一个任务中 根据文档 我们可以
  • [email protected] 需要有一个react@^15,但没有安装。您必须自己安装对等依赖项

    我已经使用安装了所有必需的库npm install我也做了npm install save email protected cdn cgi l email protection但我仍然收到此错误 我的包 json author licens
  • 用C#检测IE11

    在加载网页之前 我会检测浏览器和版本以确定兼容性 因此 如果浏览器低于 IE7 我会显示一条不兼容的消息 在 IE11 中测试网页 我的网页显示不兼容的消息 我目前正在从以下位置获取浏览器名称 var browser Request Bro
  • Mac OS 的 Perf stat 等效项?

    Mac OS 上有等效的性能统计吗 我想对 CLI 命令做同样的事情 但谷歌搜索没有产生任何结果 Mac OS X 中有 Instruments 工具来分析应用程序 包括硬件 PMU 默认是对 CPU 使用情况进行采样分析器 一些文档 ht
  • 定义开放图谱帖子的显示方式

    我已成功将自定义开放图谱对象 操作发布到 Facebook 我们的生产和登台环境都有自己的 FB 应用程序 其配置相同 除了在我们的生产应用程序中 对象和操作得到批准 就像我们的应用程序详细信息页面一样 但由于某种原因 舞台会发布一张更大的
  • iOS 多次保存带进度条的解析对象

    我发现这个非常有趣的方法 解析 是否可以跟踪 PFObject 上传的进度 https stackoverflow com questions 24010913 parse is it possible to follow progress
  • 如何向非程序员解释接口和抽象类之间的区别? [复制]

    这个问题在这里已经有答案了 可能的重复 何时使用接口而不是抽象类 反之亦然 https stackoverflow com questions 479142 when to use an interface instead of an ab
  • 为什么浏览器接受通过非安全 (HTTP) 连接发送的安全 cookie?

    当 IE 11 Firefox 26 Chrome 32 等浏览器通过指定了 安全 属性的不安全 HTTP 连接接收 Cookie 时 它 们会存储 Cookie 并在向同一服务器发出请求后将其发回安全 HTTPS 连接 虽然这可能符合某些
  • Control.invoke 和父控件

    假设我有一个名为 MainForm 的表单及其上的控件 somelabel 为了从另一个线程访问这些控件 我必须使用 Invoke 方法 例如 somelabel Invoke 不过我也可以访问label通过这样的形式 MainForm I
  • mono/linux 套接字被拒绝?

    我在用炼金术网络套接字 http alchemywebsockets net 并弄清楚了足够的东西可以在 Windows 上运行 我在 Linux ubuntu 上用 mono 构建了 alchemy 并运行了我的服务器 它收到套接字错误
  • Rails DB 中使用 CamelCase 代替 Snake_case

    我的数据库表和字段名称采用驼峰命名法 是否可以将这些名称即时转换为snake case 为了让模型方法看起来更漂亮 该应用程序是 JRubyOnRails 3 0 MSSQL DB ActiveRecord JDBC 适配器 arkadiy