неопределенный метод images_will_change! - PullRequest
0 голосов
/ 27 мая 2018

Я впервые задаю вопрос, поэтому, пожалуйста, не обращайте внимания на стилизацию.Я использую Carrierwave для загрузки нескольких файлов. Но я не могу этого сделать.

API ONLY

Controller code:

def create
@comment = Comment.new(comment_params)
@comment.save
end

def comment_params
params.require(:comment).permit(:description, {images: []})
end
------------
Comment.rb

class Comment < ApplicationRecord
 mount_uploaders :images, FileUploader
end
------------
Migration file

class AddImagesToComments < ActiveRecord::Migration[5.1]
 def change
  add_column :comments, :images, :string, array: true, default: []
 end
end

Во-первых, я получаю Unpermitted параметр:: images , а также undefined метод `images_will_change! 'для комментария Может кто-нибудь, пожалуйста, помогите мне в этом.

1 Ответ

0 голосов
/ 27 мая 2018

Согласно сообщению Загрузка нескольких изображений с помощью CarrierWave и PostgreSQL Array .Вам необходимо обновить изображения отдельно в контроллере.

before_action :set_comment

def create
  add_more_images(images_params[:images])
  flash[:error] = "Failed uploading images" unless @comment.save
  redirect_to :back
end

private
def set_comment
  @comment = Comment.where(id: params[:id]).first || Comment.new
end

def add_more_images(new_images)
  images = @comment.images 
  images += new_images
  @comment.images = images
end

def images_params
  params.require(:comment).permit({images: []}) # allow nested params as array
end
...