Render Grape API в строку из представления

У меня есть Grape API, настроенный в приложении Rails 4. Я хочу преобразовать json, созданный одним из вызовов API, в представление во встроенном теге, в частности, чтобы сделать данные JSON доступными для представления angularjs, чтобы избежать вызова (JSON API) сервера после загрузки страницы.

Любые идеи, как получить Grape API для визуализации в строку?

/app/api/api.rb

class API < Grape::API
  version 'v1', using: :path
  format :json
  get '/dashboard' do
    ...
  end
end

просмотры / приборная панель /index.html.erb

<script>   
  <%= render some-way-to-render-to-text('/api/v1/dashboard.json') %>
</script>

Я мог бы использовать HTTP-запрос get, чтобы получить его, но я надеюсь избежать издержек http-вызова. Я скорее вызываю класс API напрямую.

1 ответ

Ваш файл erb передается в необработанный HTML, прежде чем он будет отправлен клиенту. Ваш вызов API выполняется после этого, поэтому невозможно получить ответ http и обработать его в ruby, потому что к этому моменту весь ruby ​​был переведен в html.

То, что вы хотите сделать, это обработать его под углом. Оттуда вы можете использовать jquery, чтобы вставить его в DOM.

В angular вы бы сделали что-то вроде следующего в сервисе:

$http.get(....).success(//insert into DOM here)
Другие вопросы по тегам