こんにちは を失敗し、それらはすべて同じ形式で進捗同じモデルから 来ます私は別のモデルから別のフィールドを持っていますprogress_attachment私は複数の画像をアップロードするために使用します。 (私はcarrierwave使用、およびexempleなどSSR solution)それはtitle
date
content
main image
のために働くRailsとcarrierwaveアップロード複数の画像は、私は、タイトル、内容、main_imageで、いくつかの記事を書くことができ、フォームを持っている
!
しかし、複数のファイルをアップロードするフィールドでは、1つのイメージが許可されています...複数を受け入れる必要があります...何が問題なのですか?だからここ
は私のフォームです:
= simple_form_for(@progress, html: { multipart: true}) do |f|
=f.input :title
=f.input :date
=f.input :content
=f.input :main_image
=f.simple_fields_for :progress_attachments do |f|
=f.input :image, multiple: true, name: "progress_attachments_attributes[:image][]"
=f.button :submit
マイモデル:
progress.rb
class Progress < ActiveRecord::Base
default_scope ->{order(created_at: :DESC)}
mount_uploader :main_image, MainImageUploader
has_many :progress_attachments
accepts_nested_attributes_for :progress_attachments
validates :main_image, presence: true
validates :title, presence: true
validates :content, presence: true
validates :date, presence: true
end
progress_attachment.rb
class ProgressAttachment < ActiveRecord::Base
mount_uploader :image, ImageUploader
belongs_to :progress
validates :image, presence: true
end
マイコントローラー: progresses_controller.rb
class ProgressesController < ApplicationController
def index
@progresses = Progress.all
end
def show
@progress = Progress.find(params[:id])
@progress_attachments = @progress.progress_attachments.all
end
def new
@progress = Progress.new
@progress_attachment = @progress.progress_attachments.build
end
def create
@progress = Progress.new(progress_params)
respond_to do |format|
if @progress.save
params[:progress_attachments]['image'].each do |a|
@progress_attachment = @progress.progress_attachments.create!(:image => a)
end
format.html { redirect_to progresses_path, notice: 'Progress was successfully created.' }
else
format.html { render action: 'new' }
end
end
end
def update
respond_to do |format|
if @progress.update(article_params)
format.html { redirect_to @progress, notice: 'Article was successfully updated.' }
format.json { render :show, status: :ok, location: @progress }
else
format.html { render :edit }
format.json { render json: @progress.errors, status: :unprocessable_entity }
end
end
end
def destroy
@progress.destroy
respond_to do |format|
format.html { redirect_to articles_url, notice: 'Article was successfully destroyed.' }
format.json { head :no_content }
end
end
private
def progress_params
params.require(:progress).permit(:title, :content, :date, :main_image, progress_attachments_attributes: [:id, :progress_id, :image])
end
end
progress_attachements_controller.rb
class ProgressAttachmentsController < ApplicationController
before_action :set_progress_attachment, only: [:show, :edit, :update, :destroy]
def index
@progress_attachments = ProgressAttachment.all
end
def new
@progress_attachment = ProgressAttachment.new
end
def create
@progress_attachment = ProgressAttachment.new(progress_attachment_params)
@progress_attachment = @progress.progress_attachments.build
respond_to do |format|
if @progress_attachment.save
format.html { redirect_to @progress_attachment, notice: 'Progress attachment was successfully created.' }
format.json { render :show, status: :created, location: @progress_attachment }
else
format.html { render :new }
format.json { render json: @progress_attachment.errors, status: :unprocessable_entity }
end
end
end
def update
respond_to do |format|
if @progress_attachment.update(progress_attachment_params)
format.html { redirect_to @progress_attachment, notice: 'Progress attachment was successfully updated.' }
format.json { render :show, status: :ok, location: @progress_attachment }
else
format.html { render :edit }
format.json { render json: @progress_attachment.errors, status: :unprocessable_entity }
end
end
end
def destroy
@progress_attachment.destroy
respond_to do |format|
format.html { redirect_to progress_attachments_url, notice: 'Progress attachment was successfully destroyed.' }
format.json { head :no_content }
end
end
private
def set_progress_attachment
@progress_attachment = ProgressAttachment.find(params[:id])
end
def progress_attachment_params
params.require(:progress_attachment).permit(:progress_id, :image)
end
end
ヘルプは非常に感謝多く、いただければ幸いです!