Пожалуйста, помогите мне разобраться с этой ошибкой, касающейся использования HTTPService для подключения Flex4 и Ruby on Rails.

У меня есть HTTPService в Flash Builder 4, который определяется следующим образом:

<s:HTTPService id="getUserDetails" url="http://localhost:3000/users/getDetails" method="GET"/>

Он вызывается следующим образом:

getUserDetails.send({'user[username]': calleeInput.text});

Вот снимок экрана монитора сети, показывающий, что параметр отправляется правильно (это kirsty):

альтернативный текст http://img87.imageshack.us/img87/7513/screenshot20100430at548.png < / а>

Вот метод Ruby on Rails, к которому он подключен:

def getDetails    
    @user = User.find_by_username(:username)
    render :xml => @user
end

Когда я запускаю его, я получаю следующий вывод ошибки в консоли:

Обработка списка UsersController # (для 127.0.0.1 в 2010-04-30 17:48:03) [GET] Пользовательская нагрузка (1,1 мс) ВЫБРАТЬ * ИЗ "пользователей" Завершено за 30 мс (Просмотр: 16, БД: 1) | 200 ОК [http://localhost/users/listpting

Обработка UsersController # getDetails (для 127.0.0.1 в 2010-04-30 17:48:13) [GET] Параметры: {"user" => {"username" => "kirsty"}}
Пользовательская нагрузка (0.3 мс) SELECT * FROM "users" WHERE ("users". "username" = '---: username') LIMIT 1

ActionView :: MissingTemplate (Отсутствует шаблон users / getDetails.erb в пути просмотра app / views):
app / controllers / users_controller.rb: 36: в getDetails'
/usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in
service »
/usr/local/lib/ruby/1.8/ webrick / httpserver.rb: 65: в run'
/usr/local/lib/ruby/1.8/webrick/server.rb:173:in
start_thread '
/usr/local/lib/ruby/1.8/webrick/server.rb:162:in start'
/usr/local/lib/ruby/1.8/webrick/server.rb:162:in
start_thread'
/usr/local/lib/ruby/1.8/ webrick / server.rb: 95: в start'
/usr/local/lib/ruby/1.8/webrick/server.rb:92:in
each '
/usr/local/lib/ruby/1.8/webrick/server.rb:92:in start'
/usr/local/lib/ruby/1.8/webrick/server.rb:23:in
start'
/usr/local/lib/ruby/1.8/ webrick / server.rb: 82: в `start '

Рендеринг rescues / layout (internal_server_error)

Я не уверен, вызвана ли ошибка неверным кодом в методе getDetails Ruby on Rails? Я новичок в RoR, и я думаю, что помню, как где-то читал, что у каждого метода должно быть представление. Я просто использую этот метод для получения информации в приложении Flex 4, нужно ли мне делать для него представление? Это то, что вызывает ошибку? Любая помощь будет ОЧЕНЬ признательна, я застрял на этом уже несколько дней! Спасибо.

РЕДАКТИРОВАТЬ:

В соответствии с предложением Тоби Хеде я изменил HTTPService следующим образом, добавив .xml:

<s:HTTPService id="getUserDetails" url="http://localhost:3000/users/getDetails.xml" method="GET"/>

Теперь я получаю следующую ошибку:

Processing ApplicationController#index (for 127.0.0.1 at 2010-04-30 23:32:29) [GET]
  Parameters: {"user"=>{"username"=>"kirsty"}}

ActionController::RoutingError (No route matches "/users/getDetails.xml" with {:method=>:get}):
  /usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
  /usr/local/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
  /usr/local/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
  /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start'
  /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
  /usr/local/lib/ruby/1.8/webrick/server.rb:95:in `start'
  /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `each'
  /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `start'
  /usr/local/lib/ruby/1.8/webrick/server.rb:23:in `start'
  /usr/local/lib/ruby/1.8/webrick/server.rb:82:in `start'

Rendering rescues/layout (not_found)

person ben    schedule 30.04.2010    source источник


Ответы (1)


Проблема в том, что Rails ищет файл getDetails.erb.html в соответствующей папке представления. Вам нужно сделать запрос к URL-адресу с расширением «.xml» в конце, чтобы сообщить серверу, что вы хотите получить ответ XML. В противном случае по умолчанию используется HTML, что приводит к этой ошибке.

person Toby Hede    schedule 30.04.2010