使用Carrierwave和回调删除模型上的属性内容

时间:2013-02-22 20:10:34

标签: ruby-on-rails model attributes carrierwave

我正在尝试在删除上传文件时使用模板删除文件属性(使用复选框)。文件已正确删除,但不是属性。有人能帮我吗?我不想在模型中移动这段代码。我认为它必须驻留在上传者中。

# DocumentUploader.rb

# Hooks
before :cache, :update_file_attributes
after :remove, :remove_file_attributes

private

def update_file_attributes(file)
  model.file_name = file.original_filename
  model.file_size = file.size
  model.mime_type = file.content_type
end

def remove_file_attributes
  %w(file_name file_size mime_type).each { |attr| model[attr] = "" }
end

1 个答案:

答案 0 :(得分:0)

刚才我自己也遇到了这个问题。我让它在我的应用程序中工作,类似地,这样的事情:

def remove_file_attributes
  model.file_name = ""
  model.file_size = ""
  model.mime_type = ""

  model.save
end

猜猜你的工作也会很好,但你只需要添加'model.save'。 注意:执行此操作后,我的数据库中的字段为NULL,而不是空字符串(这对我来说很好)。