Сырой пост от Ruby on Rails - PullRequest
       0

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

1 голос
/ 13 октября 2009

Я пытаюсь сделать необработанный 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>'}

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

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

class anApiControllerTest < ActionController::TestCase

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

1 Ответ

1 голос
/ 13 октября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...