Rails Restful下载

4
我希望一些用户能够下载yaml文件中的数据。
我发现你可以通过以下方法实现:
1. 使用send-file(但会使用大量资源) 2. 直接链接到public文件夹中的文件(对我来说不好,因为文件是动态生成的,所以请求需要发送到控制器) 3. 通过控制器进行restful url(这种方法在http://guides.rubyonrails.org/action_controller_overview.html中有部分说明,但不足以让其正常工作!)
我按照此方法尝试了如下代码:
def show @client = Client.find(params[:id])
    respond_to do |format|
      format.html
      format.yml { render :yml => @client.redis_to_file }
    end
end

redis_to_file 返回一个带有 YAML 数据的字符串。
在 config/mime_types.rb 中。
Mime::Type.register "x-yaml", :yml

然后像这样访问:
clients/5.yml

我只得到了“无效模板”的提示。(没错,我在我的视图中没有yml模板。)请问如何做才能让它正常工作?非常感谢您的帮助。
1个回答

1

试试这个:

respond_to do |format|
  format.html
  format.yml { send_data @client.redis_to_file, :type => 'x-yaml' }
end

文档中有更多的选项。


我有类似的问题。我收到了成功的响应。我可以通过Web开发工具确认这一点。但是仅此而已。浏览器没有显示文件下载窗口。 - Penguin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接