我必须从Rails 5.2项目中访问旧数据库。不幸的是,我无法更改任何表的列名称,并且该表包含名称为hash
的列,该列不适用于ActiveRecord(由于hash
是现有方法,因此会抛出错误)。我不需要该列,但也不能重命名或删除它。
是否有一种方法告诉ActiveRecord不要使用给定表的hash
字段?
答案 0 :(得分:3)
您可以使用在版本5.0中添加到Ruby on Rails的ignored_columns
方法来忽略数据库中的列。引用文档:
ignored_columns=(columns)
设置模型应忽略的列名称。被忽略的列将不会定义属性访问器,也不会在SQL查询中被引用。
只需将以下内容添加到模型中即可:
class MyModel < ApplicationRecord
self.ignored_columns = %w(hash)
end