#jquery #ruby-on-rails #json
#jquery — jquery — запрос #ruby-на-рельсах #json #jquery #ruby-on-rails
Вопрос:
У меня есть вызов ajax, и я хочу вернуть ответ в формате json.
Контроллеру нужно будет получить выходные данные части, плюс добавить некоторые другие свойства к объекту, а затем сериализовать в json.
Как я могу получить выходные данные части и сохранить их в этом объекте?
Я хочу что-то вроде:
def my_action
my_output.html = render :partial => 'test', ....
my_output.some_prop1 = 234234
my_output.to_json
end
Затем, на мой взгляд, я введу html в DOM и т.д.
Ответ №1:
Просто используйте render_to_string
вместо render
.
def my_action
output = {}
output[:html] = render_to_string :partial => 'test', ....
output[:some_prop1] = 234234
render :json => output
end
Комментарии:
1. Нужно ли сначала придать my_output определенный тип? или просто my_output = «» достаточно объявления?
2. кстати, он говорит, что не может найти шаблон. это работало, когда я делал это без render_to_string
3. мой код: render_to_string :partial => ‘test’, :locals => { :obj1 => obj1}, :layout => false
4. Это может зависеть от вашей версии Rails, но я не думаю, что вам нужен
to_json
, если вы передаете его в:json =>
5. Я не уверен, почему он его не нашел. Возможно, вам следует передать
:partial => 'controller/partial'
?