【发布时间】:2011-08-21 04:00:33
【问题描述】:
我已经尝试了很长时间,但似乎无法绕过它。
对于以.pdf 结尾的网址,我希望asset_host 在本地获取文件。
所以我在我的development.rb 文件中执行以下操作
config.action_controller.asset_host = Proc.new { |source,request|
source.format.to_s.match(/pdf/) ?
"file://#{Rails.root.join('public')}" :
"#{request.protocol}#{request.host_with_port}"
}
但这给了我这样的错误:
调用私有方法“格式” "/stylesheets/css3buttons/reset.css?1304745651":String
问题
rails3中检测url请求格式的最佳方法是什么??
更新
我已经尝试过source、request.media_type 和request.format,但它们都没有获取 PDF!
下面显示了日志。我为上述三个中的每一个都添加了调试语句。
config.action_controller.asset_host = Proc.new { |source, request|
print "Source: " + source
print "\n"
print "request.media_type: " + request.media_type
print "\n"
print "request.format: " + request.format
print "\n"
}
来源: /stylesheets/css3buttons/reset.css?1304745651 request.media_type:request.format: 文本/html 来源: /stylesheets/css3buttons/css3-github-buttons.css?1304745651 request.media_type:request.format: 文本/html 来源: /stylesheets/application.css?1304780110 request.media_type:request.format: 文本/html 来源: /stylesheets/button-basics.css?1303711277 request.media_type:request.format: 文本/html 来源: /stylesheets/global.css?1304739877 request.media_type:request.format: 文本/html 来源: /javascripts/jquery.js?1302484024 request.media_type:request.format: 文本/html 来源: /javascripts/rails.js?1302488107 request.media_type:request.format: 文本/html 来源: /javascripts/jquery.maskedinput.js?1302484474 request.media_type:request.format: 文本/html 来源: /javascripts/application.js?1300318225 request.media_type:request.format: 文本/html 来源: /javascripts/jquery.js?1302484024 request.media_type:request.format: 文本/html 来源: /javascripts/rails.js?1302488107 request.media_type:request.format: 文本/html 来源: /javascripts/formToWizard.js?1256698412 request.media_type:request.format: 文本/html 来源: /javascripts/application.js?1300318225 request.media_type:request.format: 文本/html 来源: /javascripts/jquery.js?1302484024 request.media_type:request.format: 文本/html 来源: /javascripts/rails.js?1302488107 request.media_type:request.format: 文本/html 来源: /javascripts/rails_validations.js request.media_type:request.format: 文本/html 来源: /javascripts/application.js?1300318225 request.media_type:request.format: 文本/html
开始 GET "/medicalhistories/9.pdf" 127.0.0.1 于 5 月 8 日星期日 17:00:15 -0400 2011
在我的index.html.erb 中生成 pdf 链接的代码如下:
<td><%= link_to "PDF", medicalhistory_path(medicalhistory, :format => "pdf")%></td>
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3