2012-02-23 3 views
0

Я пытаюсь выполнить две вспомогательные функции в окне вызова, второе с возвратом первого. Я знаю, что следующие функции должным образом возвращает нужный хеш:Несколько объектов JSON в потоке

%p = helper_method0 params[:some_string] #does a request on a third party site which responds with json data wich is then parsed by yajl and the hash is returned to view 

Однако, когда я звоню следующее:

- hash = helper_method0 params[:some_string] #does a request on a third party site which responds with json data wich is then parsed by yajl and the hash is returned to view 
%p= helper_method1 hash #Literally is just returning the input parameter 

Я получаю следующее сообщение об ошибке

Found multiple JSON objects in the stream but no block or the on_parse_complete callback was assigned to handle them. 

Как я называю метод с входным параметром в качестве возврата другого метода из представления?

ответ

2

То, что вы делаете совершенно правильно :)

И вы могли бы также сделать:
(если вы хотите сохранить байты и переменные)

%p= helper_method1(helper_method0 params[:some_string]) 

Но в любом случае. ..
Эта ошибка звучит как проблема в парсе json ... вы используете Yajl?

Я видел этот вопрос при использовании Yajl так:

parser = Yajl::Parser.new 
hash = parser.parse(some_string) 

То, что работало для меня было использовать метод класса Yajl так:

Yajl::Parser.parse(some_string.strip) 

Я надеюсь, что это помогает :)

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