ruby-on-rails - 处理旧数据库中的列名“哈希”
问题描述
我必须从 Rails 5.2 项目中访问旧数据库。不幸的是,我无法更改任何表列名称,并且该表包含一个名称hash
不适用于 ActiveRecord 的列(将引发错误,因为hash
它是现有方法)。我不需要该列,但我既不能重命名也不能删除它。
有没有办法告诉 ActiveRecord 不使用hash
给定表的字段?
解决方案
您可以使用ignored_columns
Ruby on Rails 5.0 版中添加的方法来忽略数据库中的列。从文档中引用:
ignored_columns=(columns)
设置模型应该忽略的列名。忽略的列不会定义属性访问器,也不会在 SQL 查询中被引用。
只需将以下内容添加到您的模型中:
class MyModel < ApplicationRecord
self.ignored_columns = %w(hash)
end
推荐阅读
- c# - 无效的 JWT 签名
- botframework - 如何从用户话语中纠正 LUIS.AI 应用程序中的拼写错误?使用 Bing 拼写检查器 api 或在意图中标记拼写错误的单词
- search - 更改 Googlebot 抓取速度 2019
- rest - JSON:API格式(Content-Type application/vnd.api+json)的资源的大量关系资源处理的正确方法
- c# - 看不到 Windows 窗体应用模板
- wcf - WCF 处理 serviceHost 中的不正常断开连接
- azure - 使用 Azure REST API 排队生成时可以覆盖任务组变量吗?
- jenkins - 从 Jenkins 作业中传递 Jenkins Pipeline 参数?
- php - 使用 PHP 根据用户输入“构建”准备好的 SQL 语句
- vb6 - 从文本框中更新数据库记录时出错