ruby-on-rails - 处理旧数据库中的列名 'hash'

标签 ruby-on-rails ruby activerecord ruby-on-rails-5.2

我必须从 Rails 5.2 项目中访问遗留数据库。不幸的是,我无法更改任何表列名称,并且该表包含一个名称为 hash 的列,它不适用于 ActiveRecord(因为 hash 而会抛出错误是一种现有的方法)。我不需要该列,但我既不能重命名也不能删除它。

有没有办法告诉 ActiveRecord 不要使用给定表的 hash 字段?

最佳答案

您可以使用 ignored_columns在 5.0 版中添加到 Ruby on Rails 中的方法,用于忽略数据库中的列。引用自文档:

ignored_columns=(columns)

Sets the columns names the model should ignore. Ignored columns won't have attribute accessors defined, and won't be referenced in SQL queries.

只需将以下内容添加到您的模型中:

class MyModel < ApplicationRecord
  self.ignored_columns = %w(hash)
end

关于ruby-on-rails - 处理旧数据库中的列名 'hash',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52889299/

相关文章:

ruby-on-rails - Rails, Has and belongs to many, 匹配所有条件

ruby-on-rails - Rails 中同一个类的多个关联的最佳实践?

ruby-on-rails - 我应该在我的 rails 应用程序中的什么地方定义我的 resque 记录器

ruby-on-rails - 错误 : Error installing rails zeitwerk requires Ruby version >= 2. 4.4

ruby - 如果我的 XML 文档指令指定 UTF-8 编码,我还需要转义字符吗?

ruby-on-rails - 为什么 ||和/或在 rails 中表现不同?

ruby-on-rails - 我如何使用 puffing-billy 和 VCR 来防止测试 stripe 的结帐创建无穷无尽的新文件?

ruby-on-rails - 使用 Capybara + Env.js 测试 JQuery UI 自动完成不起作用(使用 Selenium 可以)

mysql - 重新计算 120k 记录的计数器缓存 [Rails/ActiveRecord]

ruby-on-rails - Rails PG::UndefinedColumn:错误:列 carts_parts.[:part_id, :cart_id] 不存在