2013-12-04 2 views
0

Я только что закончил создание простой Carrierwave системы загрузки файлов (с помощью примера на http://railscasts.com/episodes/253-carrierwave-file-uploads)Формы для загрузки изображений с помощью Carrierwave

Вот моя модель:

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 

Вот мой взгляд формы:

<%= form_for @video, :html => {:multipart => true} do |f| %> 
    <p> 
    <%= f.file_field :translation_handwritten %> 
    </p> 
    <p><%= f.submit :Upload %></p> 
<% end %> 

Вот мой загрузчик:

class TranslationsUploader < CarrierWave::Uploader::Base 

    storage :file 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

    def default_url 
    ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_')) 
    end 

    def extension_white_list 
    %w(jpg pdf png) 
    end 
end 

Всякий раз, когда я пытаюсь на самом деле загрузки, однако, ошибки говорят, что я слишком много аргументов:

Я пробовал:

  1. Удаление: HTML => {: многочастному => верно} часть так как это также значение по умолчанию. Ошибка все еще возникает.
  2. Заменено @video с моей моделью @user. Это не ошибка! Это не имеет никакого смысла для того, что я пытаюсь сделать. Мне нужно, чтобы он работал для моей видеомодели, но почему это не ошибка с моделью пользователя?

Я как бы потерялся от того, куда идти отсюда. Кажется, это какая-то проблема с моей видеомоделью, так как это не ошибка с пользователем. У кого-нибудь есть идеи?

спасибо !!!

+0

Относится ли видео к пользователю? –

+0

В этом случае да. Доступ к этому видео осуществляется через пользователя. – rakoonise

ответ

0

Возможно, попробуйте использовать приведенное ниже в вашей форме видео, принадлежащее пользователю.

<% form_for [@user, @video] do |f| %> 

Это может не сработать, но у вас может быть вложенный ресурс, который может помочь.

Смежные вопросы