处理旧版数据库中的列名“哈希”

时间:2018-10-19 09:13:34

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

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

是否有一种方法告诉ActiveRecord不要使用给定表的hash字段?

1 个答案:

答案 0 :(得分:3)

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

  

ignored_columns=(columns)

     

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

只需将以下内容添加到模型中即可:

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