My Rails 2.3应用程序以HTML / CSS或word文档生成页面。我想将该html文件保存为文件系统作为静态文件(即filename.html或filename.doc)。我计划使用完全呈现的页面和“保存报告”按钮进行预览操作。我们的用户稍后将访问这些静态文件。 (我将保存数据库的路径。)
有关如何执行此操作的任何建议吗?
我就创建一个文件并保存它,但我不确定如何将我的渲染视图放入其中。如果有人知道如何将它保存到S3,奖励积分!非常感谢!
答案 0 :(得分:30)
render_to_string
是你的朋友。你把它放在一个字符串中,用通常的方式将它刻录到文件中。
class FooController
def save_foo_to_disk
data = render_to_string( :action => :index )
File.open(file_path, "w"){|f| f << data }
flash[:notice] = "saved to #{file_path}"
end
end
就S3而言,请参阅aws-s3 gem。它似乎做你想要的。用法有点像这样。
AWS::S3::Base.establish_connection!(
:access_key_id => 'abc',
:secret_access_key => '123'
)
S3Object.store(file_name, data, 'bucket-name')
玩得开心,不要用剪刀跑。
答案 1 :(得分:0)
另一种方法是向控制器添加after_action
,并使用response.body
在该操作中访问呈现的内容。通过这种方式,您的控制器可以正常响应客户端,同时将呈现的内容保存到数据库中。