Hej od jakiegoś czasu z niepowodzeniem próbuje jakos bez powodzenia uruchomic uplowadowanie wielu plików na serwer
Testowa aplikacja stoi na rails 3.1 z carrierwave i mini_magick.
KONFIGURACJA
Baza danych:
create_table “images”, :force => true do |t|
t.integer “project_id”
t.string “file”
t.datetime “created_at”
t.datetime “updated_at”
end
create_table “projects”, :force => true do |t|
t.string “name”
t.datetime “created_at”
t.datetime “updated_at”
end
class Project < ActiveRecord::Base
has_many :images, :dependent => :destroy
accepts_nested_attributes_for :images, :allow_destroy => true
end
class Image < ActiveRecord::Base
attr_accessible :project_id, :file, :images_attributes
belongs_to :project
mount_uploader :file, ImageUploader
end
images_controller.rb
#probowalem roznych opcji zadna nie nie przyniosla rezultatu
jak podstawiam przykladowe dane 1 i dupa to tylko project_id skutkuje zapise do bazy
def create
@image = Image.new(:image => params[:file])
@image.project_id = "1"
@image.file = "dupa"
@image.save!
render :nothing => true
end
DZIALA POPRAWNIE - BEZ PLUPLOAD
O tyle o ile uploadowanie dziala ok jezeli skorzystam z formularza edycji poniżej :
#views/project/_form.html.erb
<%= form_for(@project) do |f| %>
<% if @project.errors.any? %>
<%= f.text_field :name %>
<%= f.fields_for :images do |image| %>
<%= image.file_field :file %>
<% end %>
<% end %>
project_controller.rb
def new
@project = Project.new
3.times {@project.images.build}
end
przykladowy log z poprawnym zapisem do bazy i uploadem obrazka
Started POST “/projects” for 127.0.0.1 at 2011-05-26 12:47:04 +0100
Processing by ProjectsController#create as HTML
Parameters: {“utf8”=>“✓”, “authenticity_token”=>“oqHpPUJzd8fWR4PnKM1W2Upa4YEC2DQYaDoUqsUDqTo=”, “project”=>{“name”=>“dddffrr”, “images_attributes”=>{“0”=>{“file”=>#<ActionDispatch::Http::UploadedFile:0x00000102155088 @original_filename=“1.jpg”, @content_type=“image/jpeg”, @headers=“Content-Disposition: form-data; name=“project[images_attributes][0][file]”; filename=“1.jpg”\r\nContent-Type: image/jpeg\r\n”, @tempfile=#<File:/var/folders/Zj/ZjFPRSOdGXWm-oet-uE9O++++TI/-Tmp-/RackMultipart20110526-2259-1a80qp3>>}}}, “commit”=>“Create Project”}
SQL (0.7ms) INSERT INTO “projects” (“created_at”, “name”, “updated_at”) VALUES (?, ?, ?) [[“created_at”, Thu, 26 May 2011 11:47:05 UTC +00:00], [“name”, “dddffrr”], [“updated_at”, Thu, 26 May 2011 11:47:05 UTC +00:00]]
SQL (0.2ms) INSERT INTO “images” (“created_at”, “file”, “project_id”, “updated_at”) VALUES (?, ?, ?, ?) [[“created_at”, Thu, 26 May 2011 11:47:05 UTC +00:00], [“file”, “1.jpg”], [“project_id”, 23], [“updated_at”, Thu, 26 May 2011 11:47:05 UTC +00:00]]
Redirected to http://localhost:3000/projects/23
Completed 302 Found in 990ms
NIE DZIALA POPRAWNIE
W tym przypadku po wyborze runtime html5 - innych jeszcze nie testowalem zaznaczam kilka obrazkow i wcisakm upload :
java script zwraca :
File: 1.jpg (72 KB) 100%
File: 2.jpg (60 KB) 100%
File: 3.jpg (94 KB) 100%
W logach :
Started POST “/images” for 127.0.0.1 at 2011-05-26 13:16:40 +0100
Processing by ImagesController#create as HTML
Parameters: {“name”=>“1.jpg”, “authenticity_token”=>“oqHpPUJzd8fWR4PnKM1W2Upa4YEC2DQYaDoUqsUDqTo=”, “file”=>#<ActionDispatch::Http::UploadedFile:0x00000101f7b370 @original_filename=“1.jpg”, @content_type=“image/jpeg”, @headers=“Content-Disposition: form-data; name=“file”; filename=“1.jpg”\r\nContent-Type: image/jpeg\r\n”, @tempfile=#<File:/var/folders/Zj/ZjFPRSOdGXWm-oet-uE9O++++TI/-Tmp-/RackMultipart20110526-2259-4my3bo>>}
WARNING: Can’t mass-assign protected attributes: image
SQL (9.0ms) INSERT INTO “images” (“created_at”, “file”, “project_id”, “updated_at”) VALUES (?, ?, ?, ?) [[“created_at”, Thu, 26 May 2011 12:16:40 UTC +00:00], [“file”, nil], [“project_id”, 1], [“updated_at”, Thu, 26 May 2011 12:16:40 UTC +00:00]]
Rendered text template (0.0ms)
Completed 200 OK in 18ms (Views: 1.0ms | ActiveRecord: 9.3ms)
Started POST “/images” for 127.0.0.1 at 2011-05-26 13:16:40 +0100
Processing by ImagesController#create as HTML
Parameters: {“name”=>“2.jpg”, “authenticity_token”=>“oqHpPUJzd8fWR4PnKM1W2Upa4YEC2DQYaDoUqsUDqTo=”, “file”=>#<ActionDispatch::Http::UploadedFile:0x00000104444120 @original_filename=“2.jpg”, @content_type=“image/jpeg”, @headers=“Content-Disposition: form-data; name=“file”; filename=“2.jpg”\r\nContent-Type: image/jpeg\r\n”, @tempfile=#<File:/var/folders/Zj/ZjFPRSOdGXWm-oet-uE9O++++TI/-Tmp-/RackMultipart20110526-2259-1q50sld>>}
WARNING: Can’t mass-assign protected attributes: image
SQL (0.6ms) INSERT INTO “images” (“created_at”, “file”, “project_id”, “updated_at”) VALUES (?, ?, ?, ?) [[“created_at”, Thu, 26 May 2011 12:16:40 UTC +00:00], [“file”, nil], [“project_id”, 1], [“updated_at”, Thu, 26 May 2011 12:16:40 UTC +00:00]]
Rendered text template (0.0ms)
Completed 200 OK in 12ms (Views: 0.9ms | ActiveRecord: 0.9ms)
Started POST “/images” for 127.0.0.1 at 2011-05-26 13:16:40 +0100
Processing by ImagesController#create as HTML
Parameters: {“name”=>“3.jpg”, “authenticity_token”=>“oqHpPUJzd8fWR4PnKM1W2Upa4YEC2DQYaDoUqsUDqTo=”, “file”=>#<ActionDispatch::Http::UploadedFile:0x00000104501450 @original_filename=“3.jpg”, @content_type=“image/jpeg”, @headers=“Content-Disposition: form-data; name=“file”; filename=“3.jpg”\r\nContent-Type: image/jpeg\r\n”, @tempfile=#<File:/var/folders/Zj/ZjFPRSOdGXWm-oet-uE9O++++TI/-Tmp-/RackMultipart20110526-2259-16h393d>>}
WARNING: Can’t mass-assign protected attributes: image
SQL (0.6ms) INSERT INTO “images” (“created_at”, “file”, “project_id”, “updated_at”) VALUES (?, ?, ?, ?) [[“created_at”, Thu, 26 May 2011 12:16:40 UTC +00:00], [“file”, nil], [“project_id”, 1], [“updated_at”, Thu, 26 May 2011 12:16:40 UTC +00:00]]
Rendered text template (0.0ms)
Completed 200 OK in 12ms (Views: 0.9ms | ActiveRecord: 0.9ms)
Po zapisaniu zapisaniu projectu logi pokazuja :
Started POST “/projects” for 127.0.0.1 at 2011-05-26 13:21:27 +0100
Processing by ProjectsController#create as HTML
Parameters: {“utf8”=>“✓”, “authenticity_token”=>“oqHpPUJzd8fWR4PnKM1W2Upa4YEC2DQYaDoUqsUDqTo=”, “project”=>{“name”=>“Testowy projekt”}, “commit”=>“Create Project”}
SQL (0.5ms) INSERT INTO “projects” (“created_at”, “name”, “updated_at”) VALUES (?, ?, ?) [[“created_at”, Thu, 26 May 2011 12:21:27 UTC +00:00], [“name”, “Testowy projekt”], [“updated_at”, Thu, 26 May 2011 12:21:27 UTC +00:00]]
Redirected to http://localhost:3000/projects/24
Completed 302 Found in 10ms
- hym brak zapisu lub updatu plików images jak widac z logów
HEJ CZY WIECIE MOZE JAK TO ROZKMINIC I CO ROBIE ZLE ? Jestem poczaątkujący w ruby wiem … jakies 3 mc ale zupelnie zglupialem. z logow wynika ze po zaznaczeniu plikow i wybraniu upload pliki sa wysylane na serwer do ktatalogu temp i jednoczesnie zapisywane w bazie danch niepelna informacje dla kazdego obrazka z kad ma se plupload wziac project_id skoro jeszcze na tym etapie formularza go nie ma ?, filename jest ale jakos nie kce sie wogole do bazy zapisac . Czy jest jakis inny sposób POMORZCIE PLEASE - bo spac po nocach nie moge
Pozdr
Kuba