rails(api)にてcarrierwaveを使いS3への画像アップロード機能を実装しているのですが、以下のエラーばかりが出てしまいます。
postmanにてform-dataを使ってpostしているのですが、どうしても保存することができません(フロントはVueで実装していますが同じくエラー)。以下関連ファイルの記述をしますので、有識者の方々、確認とご回答よろしくお願いいたします。
エラー文
TypeError (no implicit conversion of Array into String)": app/controllers/api/v1/products_controller.rb:26:in `cre"ate'
関連する使ってるgem
ruby '2.5.1'
gem 'rails', '~> 5.2.2'
gem 'pg'
gem 'carrierwave'
gem 'mini_magick'
gem 'fog-aws'
gem 'dotenv-rails'
Controller
controllers/api/v1/products_controller.rb
def create @product = Product.new(product_params) if @product.save! render json: @product else render json: @product.errors end end ... private def product_params params.permit(:id, :name, :brand, :description, :price, :images, :amazon_url, :url, :category_id) end
Model
Models/Products.rb
class Product < ApplicationRecord validates :images, presence: true mount_uploader :images, ProductUploader ... end
ProductUploader
Uploaders/ProductUploader.rb
class ProductUploader < CarrierWave::Uploader::Base include CarrierWave::MiniMagick storage :fog ... end
Carrierwave
initializer/carrierwave.rb
CarrierWave.configure do |config| config.root = Rails.root.join('tmp').to_s config.cache_dir = 'carrierwave' config.fog_provider = 'fog/aws' config.fog_credentials = { provider: 'AWS', aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], region: ENV['AWS_DEFAULT_REGION'] } config.asset_host = ENV['AWS_URL'] config.fog_directory = ENV['AWS_BUCKET'], config.storage = :fog end
ターミナルエラー文
あなたの回答
tips
プレビュー