如何将渲染视图保存为静态文件?

ant*_*ntm 13 ruby-on-rails

我的Rails 2.3应用程序生成HTML/CSS页面或word文档.我想将该html文件保存为文件系统作为静态文件(即filename.html或filename.doc).我计划使用完全呈现的页面和"保存报告"按钮进行预览操作.我们的用户稍后将访问这些静态文件.(我将保存数据库的路径.)

有关如何做到这一点的任何建议?

我就创建一个文件并保存它,但我不知道如何将我的渲染视图放入其中.如果有人知道如何将它保存到S3,奖励积分!非常感谢!

cwn*_*nja 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
Run Code Online (Sandbox Code Playgroud)

就S3而言,请参阅aws-s3 gem.它似乎做你想要的.用法有点像这样.

AWS::S3::Base.establish_connection!(
  :access_key_id     => 'abc',
  :secret_access_key => '123'
)
S3Object.store(file_name, data, 'bucket-name')
Run Code Online (Sandbox Code Playgroud)

玩得开心,不要用剪刀跑.