у меня есть HTTPService в Flash Builder 4, который определяется следующим образом:Пожалуйста, помогите мне разработать эту ошибку, в отношении использования HTTPService подключения Flex4 & Ruby On Rails
<s:HTTPService id="getUserDetails" url="http://localhost:3000/users/getDetails" method="GET"/>
Он получает называется следующим образом:
getUserDetails.send({'user[username]': calleeInput.text});
Вот скриншот сетевого монитора, показывая, что параметр посылается правильно (это «Кирсти»):
alt text http://img87.imageshack.us/img87/7513/screenshot20100430at548.png
Вот Рубин на метод Rails, что это связано с:
def getDetails
@user = User.find_by_username(:username)
render :xml => @user
end
Когда я запускаю его, я получаю следующий вывод об ошибке в консоли:
Processing UsersController#list (for 127.0.0.1 at 2010-04-30 17:48:03) [GET] User Load (1.1ms) SELECT * FROM "users" Completed in 30ms (View: 16, DB: 1) | 200 OK [ http://localhost/users/list]
Processing UsersController#getDetails (for 127.0.0.1 at 2010-04-30 17:48:13) [GET] Parameters: {"user"=>{"username"=>"kirsty"}}
User Load (0.3ms) SELECT * FROM "users" WHERE ("users"."username" = '--- :username ') LIMIT 1ActionView::MissingTemplate (Missing template users/getDetails.erb in view path app/views):
app/controllers/users_controller.rb:36:ingetDetails'
service'
/usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in
/usr/local/lib/ruby/1.8/webrick/httpserver.rb:65:inrun'
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:instart'
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:in `start'Rendering rescues/layout (internal_server_error)
Я не уверен, если ошибка вызвана неправильным кодом в методе 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 "https://stackoverflow.com/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)
Как мне позвонить на «.xml»? Извините, я все еще учился и не очень знаю! Спасибо за вашу помощь. – ben
Я имел в виду изменение URL-адреса, чтобы иметь .xml в конце: «http: // localhost: 3000/users/getDetails.xml» –
Ах, ха-ха, я не могу поверить, что я не работал. Я внес изменения, и теперь у меня другая ошибка. Я отредактирую его в исходное сообщение. Есть ли лучший способ для меня опубликовать обновленный код/ошибки, чем это? Еще раз спасибо! – ben