Trochę mi się kaszani aplikacja, chciałem ją uruchomić na docelowym serwerze ale wywala się wgrywanie obrazków.
Lokalnie wszystko działa normalnie, trochę się wstrzyma na chwilkę po submicie, ale idzie dalej, na produkcji wywala mi błąd “We’re sorry, but something went wrong.”
lokalnie uruchamiam na standardowym “rails server”.
Zdalnie uruchamiam na Nginx + Unicorn, do obrazków używam carrierwave. W logach wywala mi, że Nil nie ma jakiejś metody, chociaż w rails console dowodzi że ma.
Nie mam pojęcia gdzie szukać problemu.
Może to być jakis timing?
zbyt długo trwająca operacja? Troche dziwne bo całość trwa może 2-3sekundy
Sprawdzając w systemie plików obrazek ląduje poprawnie na serwerze i poprawnie zostaje zmniejszony zgodnie z konfiguracją.
Zastanawiam się czy nie użyć dragonfly zamiast carrierwave
Ma ktoś jeszcze jakieś pomysły gdzie szukać problemu?
Jak sobie życzysz jednak wspomniałem, że logi niewiele mówią
[code]Started POST “/items” for 83.(snip) at 2011-04-07 06:11:27 +0000
Processing by ItemsController#create as HTML
Parameters: {“utf8”=>"?", “authenticity_token”=>“9b2rDYUegmZcFi8Kz3s3VOWKxhihKdWBc2JzmY=”, “item”=>{“terms”=>“1”, “item_logo”=>#<ActionDispatch::Http::UploadedFile:0xa5d7ca8 @original_filename=“IMG_4954.JPG”, @content_type=“image/jpeg”, @headers=“Content-Disposition: form-data; name=“item[item_logo]”; filename=“IMG_4954.JPG”\r\nContent-Type: image/jpeg\r\n”, @tempfile=#<File:/tmp/RackMultipart20110407-32428-1qhen0>>, “item_logo_cache”=>""}, “commit”=>“Zapisz”}
Completed in 6690ms
NoMethodError (undefined method name' for nil:NilClass): app/controllers/items_controller.rb:50:increate’[/code]
w 50 linijce items_controller jest @item.save
Akcja w kontrolerze to niezłe spagetti, model jest zapisywany przez kilkustepowy formularz. Tak czy siak wymieniłem carrierwave na paperclip i wszystko poszło.
Dobrym rozwiązaniem byłboy tylko oddelegowanie tworzenia miniaturek do delayed_job
Myślałem o dragonfly ale on generuje obrazki na bieżąco po wywołaniu w widoku a to mnie nie interesuje, bo potrzebuję dostęp do obrazków jeszcze inną drogą więc wróciłem do starego dobrego paperclip.
To jest moja pierwsza aplikacja, którą chcę puścić produkcyjnie i widzę, że ten błąd to pewnie początek lawiny. Muszę jakoś ogarnąć ten produkcyjny zamęt