carrierwave 및 activeadmin gem을 사용하여 여러 장의 사진을 업로드하려고합니다. 하지만 문제는 레일스가 Unpermitted parameter: photos
이라고 말합니다. activeadmin gem의 permit_params
에 사진을 추가 했음에도 불구하고 말입니다.ActiveAdmin + CarrierWave를 사용하여 여러 장의 사진 업로드
#app/admin/apartment_post.rb
코드 :
ActiveAdmin.register ApartmentPost do
permit_params :title, :max_stay, :bed_configuration, :number_of_guests,
:rate, :features, :description, photos: []
form(html: { multipart: true }) do |f|
f.inputs do
f.input :title
f.input :max_stay
f.input :bed_configuration
f.input :number_of_guests
f.input :rate
f.input :features
f.input :description
f.input :photos, as: :file, multiple: true
end
f.actions
end
end
#app/model/apartment_post.rb
코드 :
class ApartmentPost < ApplicationRecord
mount_uploaders :photos, PhotoUploader
validates :title, :max_stay, :bed_configuration, :number_of_guests,
:rate, :features, :description, presence: true
end
schema.rb
코드 :
create_table "apartment_posts", force: :cascade do |t|
t.integer "max_stay", null: false
t.string "bed_configuration", null: false
t.integer "number_of_guests", null: false
t.float "rate", null: false
t.string "features", null: false
t.string "description", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "title", null: false
t.json "photos"
end
photo_uploader.rb
파일 carrierwave에 의해 설정된 기본값입니다.
도움이 매우 풍부합니다. 감사합니다.
'photos'에 빈 배열을 사용할 필요는 없습니다. 대신,': photos'는 기존의'permit_params'에 필적 할만큼 추가되어야합니다. JSON 필드 처리에 대한 유용한 블로그 게시물 : https://lorefnon.me/2015/03/02/dealing-with-json-fields-in-active-admin.html – jdgray
그러나 carrierwave는 여러 이미지를 업로드하려면 빈 배열이 필요합니다. –
문서에서 해시 배열에서 빈 배열을 가리켜 야한다고 설명합니다. https : // github.co.kr/carrierwaveuploader/carrierwave. –