У меня есть 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 мс) SELECT *
ОТ "пользователей" Завершено за 30мс (Просмотр:
16, БД: 1) | 200 ОК
[http://localhost/users/list]
Обработка UsersController # getDetails
(для 127.0.0.1 на 2010-04-30 17:48:13)
[GET] Параметры:
{ "Пользователь" => { "имя пользователя" => "Кирсти"}}
Пользовательская нагрузка (0,3 мс) SELECT * FROM
"users" WHERE ("users". "username" =
'---: имя пользователя') LIMIT 1
ActionView :: MissingTemplate (Missing
шаблон пользователей / getDetails.erb в поле зрения
путь к приложению / просмотрам):
приложение / контроллеры / users_controller.rb: 36: в
getDetails'<br>
/usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in
обслуживание '
/usr/local/lib/ruby/1.8/webrick/httpserver.rb:65:in
run'<br>
/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'<br>
/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'<br>
/usr/local/lib/ruby/1.8/webrick/server.rb:92:in
каждый '
/usr/local/lib/ruby/1.8/webrick/server.rb:92:in
start'<br>
/usr/local/lib/ruby/1.8/webrick/server.rb:23:in
начало '
/usr/local/lib/ruby/1.8/webrick/server.rb:82:in
`Начать '
Рендеринг спасения / макет
(ВНУТРЕННЯЯ_ОШИБКА_СЕРВЕР)
Я не уверен, вызвана ли ошибка неправильным кодом в методе getDetails Ruby on Rails? Я новичок в RoR, и мне кажется, что я где-то читал, что каждый метод должен иметь представление. Я просто использую этот метод для получения информации в приложении Flex 4, мне все еще нужно его просмотреть? Это то, что вызывает ошибку? Буду признателен за любую помощь, я застрял на этом в течение нескольких дней! Спасибо.
EDIT:
По предложению Тоби Хеде я изменил 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)