2016-08-30 2 views
0

Когда я пытаюсь создать новое изображение, оно не загружается, но когда я пытаюсь редактировать все, что работает нормально. Нет ошибок, после создания у меня есть nil в БД после обновления. У меня есть ссылка на картинку и все в порядке. Что я сделал не так? Прежде чем я использовал form_for, и все работало нормально, я меняю form_for на simple_form. Может, проблема здесь?Изображение не загружается carriewave/simple_form/Rails

Контроллер:

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 

Вид:

=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' 

Модель:

mount_uploader :profile_picture, BarPictureUploader 

ответ

0

Вы должны разрешить параметр profile_picture так:

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

Но почему Update action отлично работает с этим »(params.require (: bar) .permit!)"? У меня около 50 полей в моей форме. Все они хранятся в БД успешно только изображение не сохраняется? Изображение может быть сохранено только при выполнении действия update –

+0

Прежде, чем я использовал form_for, и все работает нормально, я меняю form_for на simple_form. Может быть, проблема здесь –

0

Попробуйте установить multipart: true в вашей форме

+0

Привет Асалган. Это не помогло. –

+0

Хотя это может быть ценным советом для решения проблемы, ответ действительно должен продемонстрировать решение. Пожалуйста, [править], чтобы предоставить пример кода, чтобы показать, что вы имеете в виду. В качестве альтернативы подумайте о том, чтобы вместо этого писать это как комментарий. –

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