如何将使用paperclip上传的.txt文件转换为原始文本?

时间:2013-01-02 10:32:08

标签: ruby-on-rails paperclip

我在document模型中添加了Post列,现在我可以向其中添加txt个文件了:

post.rb:

has_attached_file :document
validates_attachment_content_type :document, :content_type => 'text/plain'

控制台:

 #<Post id: 92, content: "document upload test", user_id: 1, created_at: "2013-01-02 10:23:13", updated_at: "2013-01-02 10:23:13",
 title: "document upload test", document_file_name: "test.txt",
 document_content_type: "text/plain", document_file_size: 15,
 document_updated_at: "2013-01-02 10:23:13">

现在,我想将test.txt内的内容转换为原始文本。所以我可以在我的控制器中做这样的事情:

@post.content = [TEXT INSIDE test.txt]

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

使用before_save callback,然后找到路径,打开文件并在打开的文件上调用File::read

class Post
  before_save :contents_of_file_into_body

  private
  def contents_of_file_into_body
    path = document.queued_for_write[:original].path
    content = File.open(path).read
  end
end