Rails Restful下载

时间:2011-10-07 00:59:56

标签: ruby-on-rails rails-routing

我希望有些用户能够在yaml文件中下载数据。

我看到你可以用

做到这一点
  1. 发送文件(但使用大量资源)
  2. 直接link_to公共文件夹中的文件(因为生成文件所以对我不好,所以请求需要转到控制器。
  3. 通过控制器提供的restful url(这种方法在http://guides.rubyonrails.org/action_controller_overview.html中有部分说明,但还不足以让它正常工作!)
  4. 我跟着这个尝试了类似的东西     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 个答案:

答案 0 :(得分:1)

试试这个:

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

Docs

中有更多选项