ruby-on-rails - 如何将 raw_filter 方法添加到 ruby on rails 7?
问题描述
在 rails 7 中,我使用 gem 'activerecord-import' 将数据导入我的数据库并避免多次插入,例如:
my_books = []
10.times do |i|
my_books << Book.new(name: "book #{i}")
end
# In the line below the error appears
Book.import my_books
当我运行代码时:
Book.import my_books
我收到以下错误:
undefined method `raw_filter' for #<ActiveSupport::Callbacks::Callback:0x000055e21adb4ed8 @chain_config={:scope=>:name, :terminator=>#<Proc:0x000055e21ac126e8 /usr/local/bundle/bundler/gems/rails-2432988f9fc0/activesupport/lib/active_support/callbacks.rb:589>}, @name=:validate, @kind=:before, @filter=:cant_modify_encrypted_attributes_when_frozen, @if=[#<Proc:0x000055e21adb5428 /usr/local/bundle/bundler/gems/rails-2432988f9fc0/activerecord/lib/active_record/encryption/encryptable_record.rb:13 (lambda)>], @unless=[]
发生该错误是因为 Rails 7 从 ActiveSupport::Callbacks::Callback 中删除了 raw_filter 方法,这在调用 import 时触发了未定义的方法错误
如果您能帮我解决这个错误,我将不胜感激。
解决方案
看起来这个问题已经在 gem 中修复了,但是更新版本还没有发布。
我认为您基本上有两种选择:
- 等待更新版本发布。如果您可以提供帮助,请询问维护人员。或者
- 您可能希望直接
master
从 GitHub 的分支而不是 Rubygems 安装最新版本。但请记住,当正式发布完成时,您当然希望切换回 Rubygems 版本。
如果您想从 GitHub 安装 gem,只需将包含 gem 的行更新Gemfile
为:
gem 'activerecord-import', github: 'zdennis/activerecord-import'
推荐阅读
- eclipse - Spring Boot fails loading AtomikosDataSourceBean
- java - 如何使用if条件Android更改listview项目背景颜色
- python - 如何在张量流中对批处理维度上的函数进行成对评估?
- r - 分类变量的三角图
- javascript - 此图像滑块一无所有,为什么?
- maven - “Jenkins + Selenium Grid + Maven”错误:org.openqa.selenium.SessionNotCreatedException:
- asp.net-core-mvc - 如何将 ViewModel 传递到 .NET Core 3.1 中的 Razor 组件
- mysql - Left 和 Right Join 给出相同的输出
- javascript - 我如何在我的 mac 中处理这个文件上传错误?
- c# - 单击浏览器的后退按钮时如何保留搜索结果 - ASP.NET Core MVC