我正在开发一个Ruby on Rails应用程序,它可以与RackSpace cloudfiles进行通信(类似于Amazon S3,但缺少一些功能).

由于缺乏每个对象的访问权限和查询字符串身份验证,用户的下载必须通过应用程序进行调解.

在Rails 2.3中,您似乎可以动态构建响应,如下所示:

# Streams about 180 MB of generated data to the browser.
render :text => proc { |response, output|
  10_000_000.times do |i|
    output.write("This is line #{i}\n")
  end
}

(从http://api.rubyonrails.org/classes/ActionController/Base.html#M000464开始)

我可以将cloudfiles流生成代码转储到那里,而不是10_000_000.times...个.

问题是,这是我在Rails 3中try 使用这种技术时得到的输出.

#<Proc:0x000000010989a6e8@/Users/jderiksen/lt/lt-uber/site/app/controllers/prospect_uploads_controller.rb:75>

看起来可能proc对象的call方法没有被调用?还有其他 idea 吗?

推荐答案

看起来这在Rails 3中不可用

https://rails.lighthouseapp.com/projects/8994/tickets/2546-render-text-proc

这似乎在我的控制器中对我有效:

self.response_body =  proc{ |response, output|
  output.write "Hello world"
}

Ruby-on-rails相关问答推荐

ruby on rails:错误未知关键字::当使用google-cloud-storage下载文件时,soft_deleted

Rails文档的悲观锁定示例中的争用条件

关于关联 has_many 的多级/三重嵌套形式

错误:部署到 Heroku 时找不到模块tailwindcss/defaultTheme

刺激不添加侦听器以搜索表单输入

ArgumentError 用于 Ruby on Rails 中非常简单的初始化方法,没有参数

如何使用 RSpec 和 Devise/CanCan 进行集成测试?

向现有控制器添加操作(Ruby on Rails)

Rails 中的转义值(类似于 mysql_real_escape_string())

ActiveRecord 回调列表

耙路由错误缺少:路由定义上的操作键

jQuery ajax 请求不会触发 Rails 控制器的 JS 响应?

Ruby 元素是否存在于数组中

如何在Ruby 中对数字进行上限和舍入

Rails 3.0 中的 f.error_messages

Ruby on Rails 基本概念总结

在 Rails 生产中禁用assets资源 缩小

我如何在具有活动记录的 Rails 中使用两个不同的数据库?

:javascript haml 标签中的内联Ruby ?

Rails:在 link_to 中保留 GET 查询字符串参数