I have recently moved my RoR app on the Heroku platform, and almost everything works fine apart from the videos. It works fine when my app runs in local but not on heroku. This is the error log I'm getting, if anyone knows where it can be coming from:
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:
#{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
Thanks
It looks like you must be trying to do something that writes something that has to do with the videos on the Heroku filesystem. This won't work because it's readonly.
You'll need to store your videos and anything else that currently gets created on the filesystem elsewhere (Amazon S3 works great).
精彩评论