我有一个客户端,它使用 SQL Server Reporting Services 生成报告并以 MHTML 格式导出它们。客户端只想将预定义目录结构中的 MHTML 推送到我的 Rails public/Reports 文件夹中。
Rails中有什么方法可以"吸收"目录结构,递归创建文件列表,生成无序列表,然后为每个MHTML文件动态创建路由?我知道 MHTML 文件可以嵌入到 Iframe 中(尽管浏览器支持有限,但这对我来说不是问题)
预定义的目录结构为公共/报告/仪表板/异常/
仪表板将包含1 个 MHTML 文件,异常(这将是仪表板的一种子导航或子导航)将包含未定义的数量。
布局模板将是一种包装器。
任何有过 Rails 经验的人都知道实现预期结果的最佳方式吗?
任何帮助将不胜感激。我正在使用 Rails 3.0.20(它没有资产管道),这不会托管在 Heroku 上(我知道没有写入权限)
(抱歉,我对 MHTML 文件不是很熟悉,所以我假设这些只是浏览器可以解释的静态文件。
Rails 中没有任何特别的内容可以提供您所指的行为。Rails只是一个帮助提供动态响应的框架,你想要的功能与文件系统有关,Rails主要抽象出来。
我能想到的有几个选择。
-
自己动手
Ruby 具有文件和目录实用程序,您可以使用它们在公共场合读取目录的内容并呈现您想要的响应类型。我会从这里开始:
http://www.ruby-doc.org/core-1.9.3/Dir.html
并使用 ruby 的目录通配来获取文件列表。
-
使用机架
Rails建立在Rack之上,Rack是一个标准的Web服务器接口,现在大多数Ruby应用程序服务器都实现了这个接口。Rack 提供了一些库,使得像传统 Web 服务器这样的静态资产更容易一些。
以下是一些可供查看的资源:
http://quickleft.com/blog/rack-130-serving-static-fileshttp://edgeguides.rubyonrails.org/rails_on_rack.html