0

我最近将我的 RoR 应用程序移到了 Heroku 平台上,除了视频之外,几乎所有东西都运行良好。当我的应用程序在本地运行但不在 heroku 上运行时,它工作正常。这是我得到的错误日志,如果有人知道它可能来自哪里:

Processing VideosController#new (for IP at 2010-03-20 04:32:09) [GET] 
  Session ID: 6abecf60c3369d7c7029e366bb801e08 
  Parameters: {"artist_id"=>"10", "action"=>"new", 
"controller"=>"admin/videos"} 
Rendering  within layouts/admin 
Rendering admin/videos/new 
ActionView::TemplateError (undefined method `video_file_relative_path' 
for #<Video:0x2adc9839fe28>) on line #21 of app/views/admin/videos/ 
_form.rhtml: 
18: 
19: <p><label for="videos_image_file">Fichier Vidéo SWF</label><br/> 
20: <% if @video.video_file %> 
21:             <%=  link_to image_tag(url_for_file_column("video", 
"video_file", :name => "thumbnail"))+"<br>", {:controller => 
url_for_file_column("video", "video_file")}, :popup => ['new_window', 
'height=200,width=200'] %> 
22: <% end %> 
23: <%= file_column_field 'video', 'video_file'  %> 
24: &nbsp;&nbsp;&nbsp; 
    #{RAILS_ROOT}/vendor/rails/activerecord/lib/active_record/base.rb: 
1792:in `method_missing' 
    #{RAILS_ROOT}/vendor/plugins/file_column/lib/file_column_helper.rb: 
75:in `send' 
    #{RAILS_ROOT}/vendor/plugins/file_column/lib/file_column_helper.rb: 
75:in `url_for_file_column' 
    #{RAILS_ROOT}/app/views/admin/videos/_form.rhtml:21:in 
`_run_rhtml_admin_videos__form' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb: 
314:in `send' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb: 
314:in `compile_and_render_template' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb: 
290:in `render_template' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb: 
249:in `render_file' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb: 
264:in `render' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/partials.rb: 
59:in `render_partial' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
benchmarking.rb:33:in `benchmark' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/partials.rb: 
58:in `render_partial' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb: 
276:in `render' 
    #{RAILS_ROOT}/app/views/admin/videos/new.rhtml:4:in 
`_run_rhtml_admin_videos_new' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb: 
314:in `send' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb: 
314:in `compile_and_render_template' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb: 
290:in `render_template' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb: 
249:in `render_file' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
base.rb:699:in `render_file' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
base.rb:621:in `render_with_no_layout' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
layout.rb:243:in `render_without_benchmark' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
benchmarking.rb:53:in `render' 
    /usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
benchmarking.rb:53:in `render' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
base.rb:911:in `perform_action_without_filters' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
filters.rb:368:in `perform_action_without_benchmark' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
benchmarking.rb:69:in `perform_action_without_rescue' 
    /usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
benchmarking.rb:69:in `perform_action_without_rescue' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
rescue.rb:82:in `perform_action' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
base.rb:381:in `send' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
base.rb:381:in `process_without_filters' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
filters.rb:377:in `process_without_session_management_support' 
    #{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/ 
session_management.rb:117:in `process' 
    #{RAILS_ROOT}/vendor/rails/railties/lib/dispatcher.rb:38:in 
`dispatch' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/rack/adapter/ 
rails.rb:60:in `serve_rails' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/rack/adapter/ 
rails.rb:80:in `call' 
    /home/heroku_rack/lib/static_assets.rb:9:in `call' 
    /home/heroku_rack/lib/last_access.rb:25:in `call' 
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb: 
46:in `call' 
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb: 
40:in `each' 
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/urlmap.rb: 
40:in `call' 
    /home/heroku_rack/lib/date_header.rb:14:in `call' 
    /usr/local/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/builder.rb: 
60:in `call' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/thin/ 
connection.rb:80:in `pre_process' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/thin/ 
connection.rb:78:in `catch' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/thin/ 
connection.rb:78:in `pre_process' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/thin/ 
connection.rb:57:in `process' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/thin/ 
connection.rb:42:in `receive_data' 
    /usr/local/lib/ruby/gems/1.8/gems/eventmachine-0.12.6/lib/ 
eventmachine.rb:240:in `run_machine' 
    /usr/local/lib/ruby/gems/1.8/gems/eventmachine-0.12.6/lib/ 
eventmachine.rb:240:in `run' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/thin/backends/ 
base.rb:57:in `start' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/thin/server.rb: 
150:in `start' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/thin/controllers/ 
controller.rb:80:in `start' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/thin/runner.rb: 
173:in `send' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/thin/runner.rb: 
173:in `run_command' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/lib/thin/runner.rb: 
139:in `run!' 
    /usr/local/lib/ruby/gems/1.8/gems/thin-1.0.1/bin/thin:6 
    /usr/local/bin/thin:20:in `load' 
    /usr/local/bin/thin:20 

谢谢

4

1 回答 1

1

看起来您必须尝试做一些与 Heroku 文件系统上的视频有关的事情。这不起作用,因为它是只读的。

您需要将您的视频和当前在其他地方的文件系统上创建的任何其他内容存储起来(Amazon S3效果很好)。

于 2010-03-21T15:56:49.270 回答