2011-02-01 1 views
2

В настоящее время я создаю клиентское и серверное приложение с помощью ActiveResource для веб-обслуживания. Клиент имеет длинную строку (: history), которая требует процесса преобразования, выполняемого сервером.Rails 3: вызов пользовательского метода ActiveResource - ClientError 414 - Работайте?

Здесь клиент вызывает метод пост на моем объекте, который проходит ActiveResource :: Base

active_resource.post(:convert, {:history => hh, :format => format}) 

Эта линия ошибки жалующихся, что URI слишком длинный:

ActiveResource :: ClientError Failed. Код ответа = 414. Ответное сообщение = Request-URI Too Large.

Какие еще варианты для отправки «больших» данных? Вероятно, глядя в окрестности 2000 символов данных для строки hh выше.

Спасибо!

ответ

6

Так подпись для метода пост является:

post(custom_method_name, options = {}, body = '') 

Так что, когда вы делаете:

active_resource.post(:convert, {:history => hh, :format => format}) 

Это положить ваши почтовые переменные в хэш опций, который выходит в строке запроса за сообщение.

То, что вы хотите сделать, это:

active_resource.post(:convert, nil, {:history => hh, :format => format}.to_json) 
0

Я не думал, что параметры сообщения учтены в длину URI. Вы уверены, что это строка hh, а не фактический URI, который использует active_resource.post?