2016-08-30 4 views
0

Wenn ich versuche, neues Rekordbild zu erstellen, lädt nicht hoch, aber wenn ich versuche, alles zu bearbeiten funktioniert gut. Keine Fehler, nach dem Erstellen habe ich nach dem Update keine DB in der DB Ich habe einen Link zu einem Bild und alles in Ordnung. Was habe ich falsch gemacht? Bevor ich form_for benutzt habe und alles gut funktioniert, ändere ich form_for in simple_form. Vielleicht ein Problem hier?Bild lädt nicht carriewave/simple_form/Rails

Controller:

def create 

    #byebug 
     @bar = current_user.bars.new(bar_params) 
    if @bar.save 
     UserMailer.admin_verify_email(@bar.id).deliver_now 
     flash[:success] = t(".bar_created_successfully") 

     # if admin_verified add bar to the search bos 
     if @bar.admin_verified 
     Barsearchsuggestion.index_bar(@bar) 
     redirect_to bars_path(my_bar: true) 
     else 
     redirect_to bar_status_user_path(current_user) 
     end 

    else 
     flash.now[:alert] = @bar.errors.full_messages 
     render 'users/add_bar' 
    end 
    end 

    def edit 
    @bar = Bar.find(params[:id]) 
    end 

    def update 
    @bar = Bar.find(params[:id]) 

    if @bar.update_attributes(bar_params) 
     flash[:success] = "Bar updated." 
     redirect_to bar_status_user_path(current_user) 
    else 
     flash.now[:error] = I18n.t("simple_form.error_notification.default_message") 
     # flash[:error] = @bar.errors.to_array 
     render 'edit' 
    end 
    end 

private 

    def bar_params 

    params.require(:bar).permit! 

    end 

Ausblick:

=simple_form_for(@bar) do |f| 

.form-group 

     = f.label :profile_picture 
     = t(".profile_picture_ext_html") 
     %br 
     = image_tag f.object.profile_picture.bar_detail.url 
     = f.file_field :profile_picture, class: 'form-control' 

Modell:

mount_uploader :profile_picture, BarPictureUploader 

Antwort

0

Sie haben die profile_picture Parameter wie folgt zu ermöglichen:

def bar_params 
    params.require(:bar).permit(:profile_picture) 
end 
+0

Aber warum Update Aktion funktioniert gut mit diesem "(params.require (: bar) .permit!)"? Ich habe ungefähr 50 Felder in meiner Form. Alle von ihnen gespeichert in DB erfolgreich nur Bild wird nicht gespeichert? Das Bild kann nur gespeichert werden, wenn die Aktualisierungsaktion ausgeführt wird. –

+0

Bevor ich form_for verwendet habe und alles einwandfrei funktioniert, ändere ich form_for in simple_form. Vielleicht Problem hier –

0

Versuchen Sie multipart: true in Ihrem Formular

+0

Hallo Asalgan. Es hat nicht geholfen. –

+0

Während dies ein wertvoller Hinweis sein könnte, um das Problem zu lösen, muss eine Antwort wirklich die Lösung demonstrieren. Bitte [bearbeiten], um Beispielcode anzugeben, um zu zeigen, was Sie meinen. Alternativ können Sie dies auch als Kommentar schreiben. –