Form edit - method PUT?

Przede wszystkim chciałem się przywitać… a więc witam! :stuck_out_tongue:

Mam następujące pytanie. Domyślnie akcja update w kontrolerze jest osiągalna przez metodę PUT. I wszystko działa dobrze o ile korzysta się z railsowych form helperów. Jednak w moim projekcie mam własne helpery do formów i nie za bardzo chcę się ich pozbywać na rzecz domyślnych. I tu pojawia się problem z akcją update która nie za bardzo chce działać jak wysyłam form z metodą POST (unknown route czy coś w tym stylu). I tutaj moje pytanie… jak dokładnie działają te formy w railsach jeśli chodzi o formularze edycji bo przerabianie ręcznie wszystkich route-ów do update na POST nie jest ładne ani szybkie

Pozdrawiam

Nie możesz po prostu robić tego form’a z metodą PUT? Co stoi na przeszkodzie?

[quote=Decapitated]Przede wszystkim chciałem się przywitać… a więc witam! :stuck_out_tongue:

Mam następujące pytanie. Domyślnie akcja update w kontrolerze jest osiągalna przez metodę PUT. I wszystko działa dobrze o ile korzysta się z railsowych form helperów. Jednak w moim projekcie mam własne helpery do formów i nie za bardzo chcę się ich pozbywać na rzecz domyślnych. I tu pojawia się problem z akcją update która nie za bardzo chce działać jak wysyłam form z metodą POST (unknown route czy coś w tym stylu). I tutaj moje pytanie… jak dokładnie działają te formy w railsach jeśli chodzi o formularze edycji bo przerabianie ręcznie wszystkich route-ów do update na POST nie jest ładne ani szybkie

Pozdrawiam[/quote]
imo overcomplicated

Gemow do obslugi formularzy jest tak duzo i oferuja tak wiele ze nie widze zadnego sensu w implementowaniu ich samemu


Zauważ, że railsowe metody wysyłają formularz POSTem, ale dodają ukryte pole _metod z wartością put. Dodaj u siebie takie pole:

<input type="hidden" value="put" name="_method">

Trochę więcej info: http://zadasnotes.blogspot.com/2011/02/rails-formtag-and-put-method.html

Przy okazji, jeśli korzystasz z własnych helperów upewnij się, że używasz ochrony CSRF (podpunkt 3 i 3.1):
http://guides.rubyonrails.org/security.html#cross-site-request-forgery-csrf

Jak napisał lewy313 nie ma co wymyślać koła od nowa, no chyba, że robisz research - jeśli nie, to lepiej użyj simple_form

A mi się wydaje, że Decapitated chciałby zapoznać się z RESTful Rails, ale nie do końca wie jak zadać pytanie. Jeśli nie, to sorry, ale na wszelki wypadek podsyłam linka, do czegoś co może Ci się przydać: http://www.b-simple.de/download/restful_rails_de.pdf

@ meek

Warum po niemiecku?

Witam :slight_smile: Dzięki za wszystkie odpowiedzi
Koniec końców rozwiązałem ten problem w następujący sposób:
Po analizie kodu stwierdziłem że mogę użyć wbudowanego form_tag do wygenerowania forma a resztę już buduję z wykorzystaniem własnych helperów. Rozwiązało to wszystkie problemy

[quote=tjeden]@ meek

Warum po niemiecku?[/quote]
Przepraszam, byłem przekonany, że podałem link do wersji angielskiej. Tutaj prawidłowy: http://www.b-simple.de/download/restful_rails_en.pdf

@Decapitated: bardzo dobrze :wink:

[quote=Decapitated]Witam :slight_smile: Dzięki za wszystkie odpowiedzi
Koniec końców rozwiązałem ten problem w następujący sposób:
Po analizie kodu stwierdziłem że mogę użyć wbudowanego form_tag do wygenerowania forma a resztę już buduję z wykorzystaniem własnych helperów. Rozwiązało to wszystkie problemy[/quote]
Jeśli chcesz to zrobić bardziej rails-way i masz czas na naukę, to możesz zobaczyć jak to rozwiązują znane gemy do budowania form. Na przykład nadpisanie form_for i przygotowanie jej do swoich potrzeb.