我正在尝试运行此代码“
FACTORY = %w(ProcessedTransaction Chargeback).freeze
FACTORY.constantize.each do |factory|
factory.public_send(:delete_all)
end
end
但是我收到了这个错误:NoMethodError: undefined method
constantize'for#`
你知道我怎么解决这个问题吗?
答案 0 :(得分:1)
您只能在字符串上调用String#constantize,但您在数组var directories = ImageMetadataReader.ReadMetadata(
new MemoryStream(bytes));
foreach (var directory in directories)
foreach (var tag in directory.Tags)
Console.WriteLine($"{directory.Name} - {tag.Name} = {tag.Description}");
上调用它。
删除FACTORY
并添加FACTORY.constantize
还要确保您有ActiveSupport::Inflector所需的
答案 1 :(得分:1)
默认情况下,ruby大写变量是常量,因此您无法在其上调用constantize
。在你的情况下,它只是一个数组,所以这应该工作:
FACTORY = %w(ProcessedTransaction Chargeback).freeze
FACTORY.each do |factory|
factory.constantize.public_send(:delete_all)
end