1

アップロードされたファイルが削除されたときに、モデルからファイル属性を削除しようとしています (チェックボックスを使用)。ファイルは正しく削除されますが、属性は削除されません。誰かが私を助けることができますか?このコードをモデル内に移動したくありません。アップローダ内に存在する必要があると思います。

# 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
4

1 に答える 1

0

ちょうど今、この問題に遭遇しました。同様に、次のようなことをアプリで実行するようにしました。

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

  model.save
end

あなたのものもうまくいくと思いますが、「model.save」を追加するだけです。注:これを行った後、データベースのフィールドは空の文字列ではなくNULLになります(これは私にとっては問題ありません)。

于 2013-04-06T17:14:48.123 に答える