2015-09-04 2 views
0

У меня есть формасохранить поле в гнездовом fields_for об ошибках

= form_for(@user_group, :html => {:multipart => true}do |f| 
    = f.fields_for :image, @user_group.build_image do |ff| 
    = ff.file_field :file 
// other fields go here 

Он работает, но если есть ошибка проверки он получает rerendered и выбранный файл исчезнет (другие поля не происходит, в том числе других вложенных атрибутов). Но изображение объекта есть:

def create 
    @user_group = User::Group.new(user_group_params) 
    if @user_group.save 
     redirect_to @user_group 
    else 
     ap @user_group.image 
     render :new 
    end 
    end 

Отпечатки это:

#<Image:0x007fbf11b902a8> { 
       :id => nil, 
     :imageble_id => nil, 
    :imageble_type => "User::Group", 
      :file => #<ImageUploader:0x007fbf11b46dd8 @model=#<Image id: nil, imageble_id: nil, imageble_type: "User::Group", file: nil, created_at: nil, updated_at: nil>, @mounted_as=:file, @cache_id="1441368278-5413-2848", @filename="snapshot3.png", @original_filename="snapshot3.png", @file=#<CarrierWave::SanitizedFile:0x007fbf11b44560 @file="/home/oleg/projects/10levels-rails/public/uploads/tmp/1441368278-5413-2848/snapshot3.png", @original_filename=nil, @content_type="image/png">, @versions={:thumb=>#<ImageUploader::Uploader70228906242320:0x007fbf11b44510 @model=#<Image id: nil, imageble_id: nil, imageble_type: "User::Group", file: nil, created_at: nil, updated_at: nil>, @mounted_as=:file, @parent_cache_id="1441368278-5413-2848", @cache_id="1441368278-5413-2848", @filename="snapshot3.png", @original_filename="snapshot3.png", @file=#<CarrierWave::SanitizedFile:0x007fbf11b39408 @file="/home/oleg/projects/10levels-rails/public/uploads/tmp/1441368278-5413-2848/thumb_snapshot3.png", @original_filename=nil, @content_type="image/png">, @versions={}>}>, 
     :created_at => nil, 
     :updated_at => nil 
} 

Похоже, это проблема с файлами только

ответ

1

Вы можете использовать кэширование особенность Carrierwave. Он сохраняет выбранный файл.

Прочитано this

+0

Спасибо! Но это не работает для меня. Параметр file_cache пуст '' file_cache "=>" "' при отправке формы –