2017-12-26 22 views
0

私はCarrierswave Rails 5を使用します。いくつかのインスタンスに複数の画像をアップロードする必要があります。しかし、検証が失敗すると、すべての画像が失われます。アップロードファイルのキャッシュにはimage_cacheが見つかりましたが、1回のファイルアップロードでのみ動作します。搬送波キャッシュ複数ファイル

複数のファイルをアップロードするために、複数のファイルをキャッシュする方法です。

ありがとうございました。

答えて

0

、Railsの5.1.4のためCarrierwave 1.2.1

を解決した私は、ビューにattr_accesor :images

せずにそれをやった:

コントローラで
= f.file_field :images, multiple: true 
= f.hidden_field :images_cache 

def create 
    @instance = Model.new(permited_parameters) 
    add_images 
    .......... 
    @instance.save 
end 

private 

def permited_parameters 
    params.require(:model_name).permit(..., ..., :images_cache) 
end 

def add_images 
    new_images = params.dig(:model_name, :images) || 
       params.dig(:model_name, :images).presence && 
       JSON.parse(params.dig(:model_name, :images)) 
    if new_images 
    images = @instance.images 
    images += new_images 
    @instance.images = images 
    end 
end 

問題キャッシュされたデータ型であった。キャッシュされたデータは、[Array] as JSON

関連する問題