我目前正在進行 Rails 6.1 升級,想知道是否有辦法將新service_name列設定為ignore。我知道如何使用 ActiveRecord 表執行此操作,但不知道如何使用 Rails 的內部表(不知道如何稱呼它)。
撇開上面的細節不談,如何設定active_storage_blobs表中的一列被忽略?
uj5u.com熱心網友回復:
# app/initializers/active_storage_service_name_backport.rb
if Gem::Version.new(Rails.version) >= Gem::Version.new("6.1")
raise "This monkey patch is only needed before Rails 6.1. Your version is #{Rails.version}. Please delete #{__FILE__}."
end
ActiveStorage::Blob.tap do |klass|
klass.ignored_columns = klass.ignored_columns.dup.push(:service_name)
end
uj5u.com熱心網友回復:
# app/initializers/active_storage_ignore_service_name_backport.rb
module ActiveStorageIgnoreServiceNameBackport
extend ActiveSupport::Concern
included do
ignored_columns = [:service_name]
end
end
Rails.configuration.to_prepare do
ActiveStorage::Blob.include(ActiveStorageIgnoreServiceNameBackport)
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/352027.html
