【问题标题】:Deal with a column name 'hash' in a legacy database处理旧数据库中的列名“哈希”
【发布时间】:2018-10-19 09:13:33
【问题描述】:

我必须从 Rails 5.2 项目中访问旧数据库。不幸的是,我无法更改任何表列名称,并且该表包含名称为 hash 的列,该列不适用于 ActiveRecord(由于hash 是现有方法,将引发错误)。我不需要该列,但我既不能重命名也不能删除它。

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

【问题讨论】:

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


【解决方案1】:

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

ignored_columns=(columns)

设置模型应该忽略的列名。被忽略的列不会定义属性访问器,也不会在 SQL 查询中被引用。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 2014-12-09
    • 2018-03-05
    • 2014-04-28
    • 2021-12-06
    相关资源
    最近更新 更多