gpt4 book ai didi

ruby-on-rails - 未调用自定义回形针处理器

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:35 27 4
gpt4 key购买 nike

我有一个使用 Devise 生成的用户模型。我正在使用回形针扩展此模型以启用文件上传以及使用自定义回形针处理器处理文件。

我的回形针字段在用户模型中声明如下。 PaperClipStorage 是我使用回形针变量创建的散列。此外,存储在 AWS S3 上。

has_attached_file :rb_resume, PaperclipStorageHash.merge(:style => { :contents => 'resume_contents'}, :processors => [:resume_builder])
validates_attachment_content_type :rb_resume, :if => lambda { |x| x.rb_resume? }, :content_type => ['application/pdf', 'application/x-pdf', 'application/msword', 'application/x-doc']

正在进行 validates_attachment_content_type 检查以确保它只处理 pdf 和 MS word 文件。

我的处理器如下所示

module Paperclip
class ResumeBuilder < Processor
def initialize(file,options = {}, attachment = nil)
@file = file
@attachment = attachment
puts "Attachment is not null " if !attachment.nil?
end

def make
rb = MyModule::MyClass.new(@file.path) ### Do something with the file
section_layout = rb.parse_html
@attachment.instance_write(:whiny, section_layout)
@file
end
end
end

在我的用户模型中,我还有一个 after_save 回调,它应该采用在处理器 make 方法中生成的 section_layout。代码如下

after_save :save_sections
def save_sections
section_layout = rb_resume.instance_read(:whiny)
# Do something with section_layout...
end

现在我的问题是处理器代码从未被调用,我不知道为什么。

因此 section_layout 变量始终为 nil。

另一点需要注意的是,同一个模型还有另外两个has_attached_file属性。其他两个都不使用自定义处理器。

过去 3 个小时我一直在为此苦苦挣扎。任何帮助将不胜感激。

谢谢

保罗

最佳答案

我的 has_attached_file 声明错误

has_attached_file :rb_resume, PaperclipStorageHash.merge(:style => { :contents => 'resume_contents'}, :processors => [:resume_builder])

实际上应该是

has_attached_file :rb_resume, PaperclipStorageHash.merge(:styles => { :contents => 'resume_contents'}, :processors => [:resume_builder])

注意与单数风格相对的复数风格

关于ruby-on-rails - 未调用自定义回形针处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9092384/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com