내 응용 프로그램은 내 양식의 입력 필드에서 선택한 각 이미지에 대한 이미지 개체를 생성합니다. 생성 액션은 :picture
매개 변수를 반복하며 각 항목에 대해 새 이미지 객체를 생성합니다. 그러나 입력 상자에서 선택한 마지막 이미지에 대해서만 이미지 객체를 만드는 것으로 보입니다. 왜 이것이 제대로 작동하지 않습니까?마지막 매개 변수 만 개체로 전달됩니다.
컨트롤러
class Admin::ImagesController < ApplicationController
respond_to :html, :json
#before_filter :split_hash, :only => [ :create, :update ]
def index
@album = Album.find(params[:album_id])
@images = @album.images.all
end
def new
@album = Album.find(params[:album_id])
@image = @album.images.new
end
def create
params[:image][:picture].each do |image|
@album = Album.find(params[:album_id])
@params = {}
@params['picture'] = image
@image = @album.images.build(@params)
end
if @image.save
flash[:notice] = "Successfully added image!"
redirect_to [:admin, @album, :images]
else
render "new"
flash[:notice] = "Did not successfully add image :("
end
end
def show
@album = Album.find(params[:album_id])
@image = @album.images.find(params[:id])
end
def edit
@album = Album.find(params[:album_id])
@image = @album.images.find(params[:id])
end
def update
@album = Album.find(params[:album_id])
@image = @album.images.find(params[:id])
if @image.update_attributes(params[:image])
flash[:notice] = "Successfully updated Image"
redirect_to [:admin, @album, :images]
else
render "edit"
end
end
def destroy
@album = Album.find(params[:album_id])
@image = @album.images.find(params[:id])
@image.destroy
@albumid = @album.id
@id = @image.id
FileUtils.remove_dir("#{Rails.root}/public/uploads/image/picture/#{@albumid}/#{@id}", :force => true)
redirect_to admin_album_images_path(@album)
end
# def split_hash
# @album = Album.find(params[:album_id])
# @image = @album.images
# array_of_pictures = params[:image][:picture]
# array_of_pictures.each do |pic|
# size = array_of_pictures.size.to_i
# size.times {@image.build(params[:image], :picture => pic)}
# @image.save
# end
# end
end
보기 양식
<%= form_for([:admin, :album, @image], :html => {:multipart => true}) do |f| %>
<%= f.hidden_field :album_id, :value => @album.id %>
<%= f.file_field :picture, :multiple => true %>
<%= f.submit "Submit" %>
<%end%>
요청에 Params는에 제출
{"image"=>{"picture"=>[#<ActionDispatch::Http::UploadedFile:0x10c986d88 @tempfile=#<File:/var/folders/bx/6z1z5yks56j40v15n43tjh1c0000gn/T/RackMultipart20130404-53101-3c2whv-0>,
@headers="Content-Disposition: form-data; name=\"image[picture][]\"; filename=\"background-pic.jpg\"\r\nContent-Type: image/jpeg\r\n",
@content_type="image/jpeg",
@original_filename="background-pic.jpg">,
#<ActionDispatch::Http::UploadedFile:0x10c986d60 @tempfile=#<File:/var/folders/bx/6z1z5yks56j40v15n43tjh1c0000gn/T/RackMultipart20130404-53101-bvdysw-0>,
@headers="Content-Disposition: form-data; name=\"image[picture][]\"; filename=\"bible-banner.png\"\r\nContent-Type: image/png\r\n",
@content_type="image/png",
@original_filename="bible-banner.png">],
"album_id"=>"10"},
"authenticity_token"=>"dr8GMCZOQo4dQKgkM4On2uMs8iORQ68vokjW0e4VvLY=",
"commit"=>"Submit",
"utf8"=>"✓",
"album_id"=>"10"}
내가 GRE 것 atly는 당신이 공유 할 수있는 어떤 도움을 주셔서 감사합니다!
내 뇌가 폭발했습니다. 정말 고맙습니다. (나는 9 분 안에 대답 할 것이다. : p) –
btw ... 각자 저장했는지 아닌지 기록 할 것을 제안 했는가? –