<%= form_for @video, :html => {:multipart => true} do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.file_field :translation_handwritten %>
</p>
<p><%= f.submit %></p>
<% end %>
有没有人知道为什么会出现这样的错误?我很丢失......
这是我的应用程序的Gemfile。这些可能是罪魁祸首吗?我需要改变什么? 来源'https://rubygems.org'
gem 'rails', '3.2.14'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'sass-rails', '~> 3.2.3'
gem 'bootstrap-sass'
gem 'bcrypt-ruby', '3.0.1'
gem 'devise'
gem 'omniauth-google-oauth2'
gem 'omniauth-facebook'
gem 'whenever', :require => false
gem 'carrierwave' #see README: https://github.com/carrierwaveuploader/carrierwave
group :development, :test do
gem 'sqlite3'
gem 'pg'
gem 'rails_12factor'
gem 'ruby-debug19'
gem 'database_cleaner'
gem 'capybara'
gem 'launchy'
gem 'rspec-rails'
gem 'simplecov'
gem 'factory_girl_rails'
gem 'ffaker'
gem 'whenever'
end
group :test do
gem 'cucumber-rails', :require => false
gem 'cucumber-rails-training-wheels'
end
group :production do
gem 'pg'
gem 'rails_12factor'
end
group :assets do
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'haml'
更新 当我将@video更改为我拥有的任何其他模型时,它不会出错。 (它显然无法正常工作,因为我需要将其附加到视频中)。可能导致这种情况的原因是什么?
require 'carrierwave/orm/activerecord'
class Video < ActiveRecord::Base
attr_accessible :course, :qa_complete, :qa_id, :subject, :title,
:translate_complete, :translator_id, :type_complete, :typer_id, :video_id, :due_date, :translation_handwritten
validates :video_id, :presence => true, :uniqueness => true #add uniqueness in db too
mount_uploader :translation_handwritten, TranslationsUploader
end
更新2 以下是我的应用程序跟踪:
app/views/shared/_form.html.erb:1:in `_app_views_shared__form_html_erb___611020419_98374470'
app/views/videos/translate_video_handwritten.html.haml:54:in `_app_views_videos_translate_video_handwritten_html_haml__702424599_100568110'
答案 0 :(得分:0)
form_for
自动为您提供multipart true。试着摆脱它。
http://guides.rubyonrails.org/form_helpers.html#uploading-files
答案 1 :(得分:0)
检查以下修改:
<%= form_for( @video, :html => {:multipart => true}) do |f| %>
答案 2 :(得分:0)
视频是资源吗?另外,你有视频路线吗? 如果是,请尝试在模型中评论carrierwave代码。 如果这不起作用,您可以粘贴完整的应用程序跟踪吗?
答案 3 :(得分:0)
尝试使用url
作为参数。与that一样。
我希望有所帮助。
答案 4 :(得分:-1)
<% form_for "video", :html => { :multipart => true } do |f| %>