У меня есть 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 1ActionView :: MissingTemplate (Отсутствует шаблон users / getDetails.erb в пути просмотра app / views):
app / controllers / users_controller.rb: 36: вgetDetails'
service »
/usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in
/usr/local/lib/ruby/1.8/ webrick / httpserver.rb: 65: вrun'
start_thread '
/usr/local/lib/ruby/1.8/webrick/server.rb:173:in
/usr/local/lib/ruby/1.8/webrick/server.rb:162:instart'
start_thread'
/usr/local/lib/ruby/1.8/webrick/server.rb:162:in
/usr/local/lib/ruby/1.8/ webrick / server.rb: 95: вstart'
each '
/usr/local/lib/ruby/1.8/webrick/server.rb:92:in
/usr/local/lib/ruby/1.8/webrick/server.rb:92:instart'
start'
/usr/local/lib/ruby/1.8/webrick/server.rb:23:in
/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)