chciałbym zrobić coś takiego. Użytkownik dokonuje zakupu na stronie będąc zalogowanym. Przy złożeniu zamówienia aplikacja wyświetla formularz z danymi osobowymi potrzebnymi do zamówienia i nie pozwala go złożyć jeżeli dane nie są uzupełnione.
teraz chciałbym za jednym przyciskiem wysłać te dane do controlera, złożyć i zweryfikować zamówienie w systemie oraz jednocześnie przekazać je do formularza płatności. Jak będzie najlepiej to zrobić? Czy na samym końcu po dodaniu zamówienia w systemie w kontrolerze zrobić redirecta do strony płatności przekazując dane za pomocą GET?
spoko, dzięki ale bardziej chodziło mi o to jak z kontrolera wysyłać formularz na zewnątrz po zapisaniu zamówiienia w systemie a nie o samo wysłanie formularza do kontrolera.
Znałazłem i z tego co szukałem to chyba jest to http://ruby-doc.org/stdlib-1.9.3//libdoc/net/http/rdoc/Net/HTTP.html w razie jakby ktoś miał lepsze rozwiązanie do zapraszam do podzielenia się :).
Możesz też zobaczyć inne biblioteki jak np HTTParty, oraz warto tą funkcjonalość opakować w jakąś klasę, wtedy będzie łatwiej potem zmieniać no i testować. Btw do testowania możesz użyć gemu VCR.
a wiesz może jak zrobić żeby wyświetlić stronę na której wypełniamy formularz?
mam np. coś takiego jak poniżej ale póżniej dostaje missing template, wiem że muszę coś renderować dlatego jest ten błąd ale ja chcę polecieć za tym linkiem. Mam zrobić redirecta jakiegoś?
dokładnie tak jest ale szczerze nie wiem jak to zrobić. Chyba nie ma sensu zakładać nowego tematu bo nie tyczy się on tylko transferuj ale generalnie wysyłania formularza z kontrolera.
Nie wiem jak to zrobić za pomocą HTTParty a poniższy kod wykorzystujący
require ‘net/http’
require ‘net/https’
uri = URI('http://www.example.com/search.cgi')
res = Net::HTTP.post_form(uri, 'q' => 'ruby', 'max' => '50')
puts res.body
daje mi error
Net::HTTPBadResponse in OrdersController#create
wrong status line: “”
próbowałem różnych opcji i za każdym razem są błędy, pół wieczoru spędziłem na szukaniu rozwiązania i nic
Prosiłbym o jakiś działający przykład wysłania formularza z kontrolera za pomocją POST po SSLu no i oczywiście przejście na tą stronę
Innymi slowy Redirect po akcji POST nie bedzie dzialac i nalezy wykonac ‘recznie’ GET-a. Nie uzywalem HTTParty ale kiedys robilem automatyczne logowanie do Citi przez httpclient i dokladnie z tego powodu musialem wylaczyc automatyczny Redirect przed robieniem POST-a. Moze tu lezy problem?
[quote]Following Redirects, and other advanced topics
you can pass a block to the CurbFu methods, we will yield the Curl::Easy object to this block to allow you to reach as far into the Curb guts as you want. This is particularly useful if you want to follow redirects:
ok. rozumiem teraz ;), zobaczę co jeszcze z tym curb-fu bo szczerze mówiąc to za dużo zachodu z tym już jest i powoli mam dość. Jest jeszcze jedno rozwiązanie, dodać zamówienie do systemu, wyświetlć stronę i zrobić automatycznie posta za pomocą js ale to rozwiązanie mi się nie podoba.