Jestem nowy na forum i w sumie też niedawno rozpocząłem przygodę z RoR, dlatego też z jednej strony proszę o wyrozumiałość a z drugiej mile będą widziane uwagi dotyczące stylu pisania kodu w Rails’ach, oraz samych postów na forum.
Ale wracając do tematu, czy jest możliwe i jeśli tak to w jaki sposób przesłanie metodą POST tablicy która miała by format mniej więcej taki:
req.set_form_data(‘user[nazwa_firmy]’ => ‘nazwa_firmy’,
‘user[osoba]’ => ‘osoba’, itd…
a nie
req.set_form_data(‘nazwa_firmy’ => ‘nazwa_firmy’,
‘osoba’ => ‘osoba’, itd…
Będę wdzięczny za odpowiedź
pozdrawiam
Adrian
Jest możliwe, to jest domyślne zachowanie Railsów jeśli korzystasz z form_for, np:
[code=ruby]<% form_for @user do |f| -%>
<%= f.text_field :nazwa_firmy -%>
<%= f.text_field :osoba -%>
<%= submit_tag “Wyslij” -%>
<% end -%>[/code]
wyśle post’em tablicę asocjacyjną (Hash’a) taką jak napisałeś.
Napisz dokładnie co próbujesz zrobić.
Próbuję z aplikacji A wysłać dane do aplikacji B, obydwie aplikacje są railsowe, aplikacja B posiada API z którgo chcę skorzystać.
Wykorzystują do tego klasę ActiveResource i kod który ma przesłać dane wygląda z A następująco:
url = URI.parse('http://127.0.0.1:3001/api/user')
req = Net::HTTP::Post.new(url.path)
req.basic_auth 'user', 'pass'
req.set_form_data('nazwa' => 'nazwa',
'osoba' => 'osoba, 'ulica' => 'ulica', 'miejcowosc' => 'miejscowosc')
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) }
odbierać dane chciałbym w aplikacji B po przez takie odwołanie:
@user = User.new(params[:user])
dlatego też chciałem aby aplikacja A wysyłała dane w taki sposób:
url = URI.parse('http://127.0.0.1:3001/api/user')
req = Net::HTTP::Post.new(url.path)
req.basic_auth 'user', 'pass'
req.set_form_data('user[nazwa]' => 'nazwa',
'user[osoba]' => 'osoba, 'user[ulica]' => 'ulica', 'user[miejcowosc]' => 'miejscowosc')
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) }
Skoro korzystasz z ActiveResource to dlaczego nie w pełni ? Widzę, że używasz Net::HTTP, czytałeś jak działa ActiveResource (Lifecycle methods i custom REST methods ? ) Zakładam że obie aplikacje to Rails.
W skórcie: Aplikacja B obsługuje xml’owe zapytania (REST w Rails), Aplikacja A tworzy(new), pobiera (find), aktualizuje(save) zasoby przy pomocy ActiveResource. Może jakiś wprowadzający screencast ?
Czytałem o activeResource ale widać nie do końca zrozumiałem ideę.
Dziękuję za szybką i konkretną odpowiedź,
Pozdrawiam
Adrian