数据库表字段名有:attribute,save,或者 type 等其他保留名(Rails/Ruby 里的方法名),
最简单的ActiveModel.first
就会出错,提示:
ActiveRecord::DangerousAttributeError
现在数据库不能变动,Rails 里该怎么解决?
试试 alias_attribute
class Person
alias_attribute :nickname, :name
end
via: https://api.rubyonrails.org/classes/ActiveModel/AttributeMethods/ClassMethods.html
我在 rails6 对接第三方数据库也遇到了这个问题,使用 select as 依然会报错。因为不关心冲突字段的值,所以最终用了个折衷方案,忽略冲突的字段 self.ignored_columns = [:conflict_columns]