Ruby on Rails, XML и POST !?

программирование xml ruby ruby on rails


Примечание:
Собственно назрел еще вопрос :
Создаю я значить ХМL файл из специального хеша и в теле POST запроса через HTTP передаю по адресу
Код:
http://localhost:3000/controller/method

как нужно правильно обработать пришедший запрос что бы можно было вытянуть из него этот XML файл, распарсить его ну и вернуть некий результат !?
У меня в понимание этого некие пробелы, хотелось бы восполнить .... благодарен за помощь, куски кода приветствуются )

Примечание:
Спасибо ! Тут разобрался .... еще возник такой вопрос :
Есть простой клиент
Выделить всёРазвернуть кодБез подсветки
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:

#!/usr/bin/ruby
require 'rubygems'
require 'httpclient'
require 'builder'
require 'active_support'
def smp_request(http_method, url, options = {})
return nil if url.nil? || url.size == 0
#options["tokenid"] = "#{ROBOT_CLIENT_TOKEN}"
p options if options.size > 0
clnt = HTTPClient.new
http_method = "get" unless ["get", "post"].include?(http_method)
puts "url is:#{url}"
begin
case http_method
when "get"
puts "Request get ..."
request = clnt.get(url, options)
puts "Request get ... executed"
request.body
when "post"
puts "Request post ..."
request = clnt.post(url, options)
puts "Request post ... executed"
request.body
end
rescue
puts "There is error"
return nil
else
puts "Request status = #{request.status}"
return request
end
end
puts "Input Name :"
name = gets.chomp
puts "Input Mail :"
mail = gets.chomp
puts "Input Pass :"
pass = gets.chomp
host = "http://localhost:3000/users/post"
method = "post"
data = {:login => name, :mail => mail, :password => pass}
resp = smp_request(method, host, data)
puts resp.body




отсылающий на сервер некие данные, код метода простой
Выделить всёБез подсветки
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:

def post
@user = User.new(:login => params[:login], :email => params[:mail], :password => params[:password])

respond_to do |accepts|
if @user.save
accepts.html
accepts.xml { render :xml => @user.to_xml(:except => [:created_at, :updated_at]) }
else
format.html { render :action => "new" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end


Юзер на стороне сервера создается и в соответствующем отображение в браузере это видно !!!
Хотелось бы что бы в ответ от сервера приходил XML файл с данными только что созданного юзера, но приходит непонятно что ....

Помогите разобрать ! Спасибо !
Ответы:
это смотря как вы его передаете
в теле пост может быть как key pairs так и бинарники
уточните
если пары то они доступны в params[:key] и посути от сабмита формы не отличается, т.о. вы можете как вручную перебрать все пары так и воспользоваться автоматическими методами если структура пары совпадает с моделью данных
если передается бинарник, то попробуйте ссылку, только естественно вам не обязательно файл сохранять, обрабатывайте его как xml
что приходит?


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.