2010-04-30 1 views
0

у меня есть 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 1

ActionView::MissingTemplate (Missing template users/getDetails.erb in view path app/views):
app/controllers/users_controller.rb:36:in getDetails'
/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 (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) 

ответ

1

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

+0

Как мне позвонить на «.xml»? Извините, я все еще учился и не очень знаю! Спасибо за вашу помощь. – ben

+0

Я имел в виду изменение URL-адреса, чтобы иметь .xml в конце: «http: // localhost: 3000/users/getDetails.xml» –

+0

Ах, ха-ха, я не могу поверить, что я не работал. Я внес изменения, и теперь у меня другая ошибка. Я отредактирую его в исходное сообщение. Есть ли лучший способ для меня опубликовать обновленный код/​​ошибки, чем это? Еще раз спасибо! – ben

Смежные вопросы