如何在 rails 7 上将 raw_filter 方法添加到 ruby?
How to add raw_filter method to 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中看起来像这样issue has already been fixed,但更新版本尚未发布。
我想你基本上有两个选择:
- 等待更新版本发布。也许询问维护者是否可以提供帮助。或者
- 您可能希望直接从 GitHub 的
master
分支安装最新版本,而不是从 Rubygems。但请记住,当正式发布完成后,您当然希望切换回 Rubygems 版本。
如果您想从 GitHub 安装 gem,只需将 Gemfile
中带有 gem 的行更新为:
gem 'activerecord-import', github: 'zdennis/activerecord-import'
在 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中看起来像这样issue has already been fixed,但更新版本尚未发布。
我想你基本上有两个选择:
- 等待更新版本发布。也许询问维护者是否可以提供帮助。或者
- 您可能希望直接从 GitHub 的
master
分支安装最新版本,而不是从 Rubygems。但请记住,当正式发布完成后,您当然希望切换回 Rubygems 版本。
如果您想从 GitHub 安装 gem,只需将 Gemfile
中带有 gem 的行更新为:
gem 'activerecord-import', github: 'zdennis/activerecord-import'