Сырой пост из Ruby on Rails

Я пытаюсь сделать необработанный POST для внутренней страницы из модульного теста, и по какой-то причине я получаю следующую ошибку:

NoMethodError: undefined method `symbolize_keys' for #<String:0x258a910>
    unit/call_route_attempt_test.rb:10:in `test_response_from_call_info'

Мой код выглядит так:

post :call_info, '<?xml version="1.0" encoding="UTF-8"?><request-call-info>...SOME XML HERE...</request-call-info>'

Это должно быть хорошо в соответствии с документами API. Единственный формат, который я могу получить, - это отправить параметры в следующем виде:

post :call_info, :post => {:a_var => '<?xml version="1.0" encoding="UTF-8"?><request-call-info>...SOME XML HERE...</request-call-info>'}

У меня такое чувство, что мне нужна какая-то часть библиотеки, которая по какой-то причине здесь не работает.

Редактировать
Как указывает пользователь Сара Мей, я вызываю неправильный метод публикации. Я думаю, что это связано с моим классовым наследованием, которое я не уверен, что смогу изменить, учитывая обстоятельства, когда я выполняю тест. Определение класса выглядит следующим образом:

class anApiControllerTest < ActionController::TestCase

Я пытаюсь реализовать метод post (ActiveResource :: Connection), указанный в документации по Rails API. Я действительно новичок в этом, совершенно потерян и в срок. Любая помощь очень ценится. Спасибо!

13.10.2009 00:15:28
1 ОТВЕТ
РЕШЕНИЕ

Это зависит от того, какой postметод вы вызываете. Один в ActionController :: Integration :: Session , один в ActionController :: TestProcess , один в ActiveResource :: Connection ... и т. Д. Большинство из них принимают хэш params в качестве второго параметра, поэтому, если второй вызов работает, вы, вероятно, не вызываете тот, postкоторый, как вы думаете, вы вызываете.

1
13.10.2009 01:25:37
Я думаю, что ты определенно прав. Как мне указать, кому звонить?
bloudermilk 13.10.2009 02:22:47