2017-12-11 1 views
0

I verwendet wurde Schienen gem carrierwave Test mehrere BilderRails carrierwave mehrere Datei-Upload-Encoding :: UndefinedConversionError in ArticlesController # erstellen

unten ist, ich bin Schritt für Schritt

  • rails new TestUploadImages
  • rails g Article title:string body:text
  • rails generate uploader Avatar
  • rails g migration add_avatar_to_users avatar:string rake db:migrate

Config Article model uploader

class Article < ApplicationRecord 
    mount_uploader :avatar, AvatarUploader 
end 

Config _form.html.erb für erstellen Artikel mit Bild

<%= form_for @article, html: {multipart: true} do |f| %> 
    <p> 
     <%= f.label :title %> 
     <%= f.text_field :title %> 
    </p> 
    <p> 
     <%= f.file_field :avatars%> 
    </p> 
    <p> 
     <%= f.label :body %> 
     <%= f.text_area :body %> 
    </p> 

    <p> 
     <%= f.submit %> 
    </p> 
<% end %> 

article_controller

class ArticlesController < ApplicationController 
    def new 
    @article = Article.new 
    end 

    def create 
    @article = Article.new(article_params) 
    @article.save 
    render "show" 
    end 

    def show 
    @article = Article.find(params[:id]) 
    end 

    private 

    def article_params 
    params.require(:article).permit(:title, :body, :avatar) 
    end 
end 

hier über ein Bild erstellen haben könnte w ith Artikel

unten ist versuchen, mehrere Bilder erstellen
  • Änderung article Tabelle avatar Spalte mit avatars

Änderung _form.html.erb

<p> 
    <%= f.file_field :avatars, multiple: true%> 
</p> 

weil mein verwendet Test db sqlite3 ist so, Referenzen aus cariierwave

class Article < ApplicationRecord 
    mount_uploader :avatar, AvatarUploader 
    serialize :avatars, JSON 
end 

Änderung articles_controller starke Parameter

def article_params 
    params.require(:article).permit(:title, :body, {avatars: []}) 
    end 

jetzt sollten mehrere Bilder

erstellen, wenn ich diesen Fehler gefundene bin versucht

enter image description here

und Terminal Nachricht enter image description here

Antwort

1

Im Modell Article montieren avatars nicht avatar

und Ihre Spalte ändern avatar zu:

def change 
    remove_column :articles, :avatar 
    add_column :articles, :avatars, :string, array: true, default: [] 
end 
Verwandte Themen