Witam mam dwa modele Jeden to Projects drugi to Images. Chcial bym upladować za jednym razem kilka obrazków za pomocą plupload HTML5
W sumie wszystko działa ok ( o ile recznie wpisze id projektu)
W powyższym wypadku jezeli recznie podam ID projektu obrazki się upladują i rekordy zapisywane są prawidłowo dla każdego obrazka
W jaki sposób wywolać project_id ? zamiast tego przykladowego 27 ? próbowałem już wszystkiego i nie działa
Podmienilem kod w kontlorerze na proponowany powyzej " @image.project = Project.find(params[:project_id]) "
w route.rb zrobilem zagniezdzenie :
resources :images
resources :projects do
resources :images
end
Ale cos nie bardzo mi to smiga -> plupload wogóle teraz nie uploaduje obrazkow … wywala błąd
Started POST “/images” for 127.0.0.1 at 2011-07-22 15:39:27 +0200
Processing by ImagesController#create as HTML
Parameters: {“name”=>“IMG_0839.JPG”, “authenticity_token”=>“sTgFqoqLSYsYeKauWiW6pI7Kx1KIU0rp6N6Zsr5ylxQ=”, “file”=>#<ActionDispatch::Http::UploadedFile:0x0000010595c5a8 @original_filename=“IMG_0839.JPG”, @content_type=“image/jpeg”, @headers=“Content-Disposition: form-data; name=“file”; filename=“IMG_0839.JPG”\r\nContent-Type: image/jpeg\r\n”, @tempfile=#<File:/var/folders/Zj/ZjFPRSOdGXWm-oet-uE9O++++TI/-Tmp-/RackMultipart20110722-26813-36mm4o>>}
Completed 404 Not Found in 10ms
ActiveRecord::RecordNotFound (Couldn’t find Project without an ID):
app/controllers/images_controller.rb:20:in `create’
Jeżeli już zagnieździłeś images w projects to powinieneś request z formularza wysyłać na inny adres - nie ten z helpera images_path, tylko project_images_path(@project).
No a z view wyalilem <%= hidden_field_tag :project_id, @project.id %>
Tylko teraz mi wywala No route matches {:controller=>“images”} jak proboje listowac projekty http://localhost:3000/projects
ale zaraz moze dojde czemu …
To raczej kwestia czegoś co masz w widoku - np. linka do formularza dodawania obrazków, lub czegoś w tym stylu, poszukaj tam.
Co do samego tworzenia obrazków, zamiast przypisywać @image.project_id moim zdaniem bardziej koszernie jest zrobić to w ten sposób:
@project = Project.find(params[:project_id])
@project.images.create(params[:image]) # chociaż w twoim przypadku chyba ręczenie create(:file => params[:file], itd...