我在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]
有什么建议吗?
答案 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